diff options
438 files changed, 5212 insertions, 2241 deletions
diff --git a/apct-tests/perftests/core/src/android/libcore/regression/ByteBufferBulkPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/BulkPerfTest.java index 8e57b28a0550..855bb9a43d34 100644 --- a/apct-tests/perftests/core/src/android/libcore/regression/ByteBufferBulkPerfTest.java +++ b/apct-tests/perftests/core/src/android/libcore/regression/BulkPerfTest.java @@ -36,10 +36,10 @@ import java.util.Collection; @RunWith(Parameterized.class) @LargeTest -public class ByteBufferBulkPerfTest { +public class BulkPerfTest { @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); - @Parameters(name = "mAligned({0}), mSrcBufferType({1}), mDataBufferType({2}), mBufferSize({3})") + @Parameters(name = "mAlign({0}), mSBuf({1}), mDBuf({2}), mSize({3})") public static Collection<Object[]> data() { return Arrays.asList( new Object[][] { @@ -83,7 +83,7 @@ public class ByteBufferBulkPerfTest { } @Parameterized.Parameter(0) - public boolean mAligned; + public boolean mAlign; enum MyBufferType { DIRECT, @@ -92,13 +92,13 @@ public class ByteBufferBulkPerfTest { } @Parameterized.Parameter(1) - public MyBufferType mSrcBufferType; + public MyBufferType mSBuf; @Parameterized.Parameter(2) - public MyBufferType mDataBufferType; + public MyBufferType mDBuf; @Parameterized.Parameter(3) - public int mBufferSize; + public int mSize; public static ByteBuffer newBuffer(boolean aligned, MyBufferType bufferType, int bsize) throws IOException { @@ -126,13 +126,13 @@ public class ByteBufferBulkPerfTest { } @Test - public void timeByteBuffer_putByteBuffer() throws Exception { - ByteBuffer src = ByteBufferBulkPerfTest.newBuffer(mAligned, mSrcBufferType, mBufferSize); - ByteBuffer data = ByteBufferBulkPerfTest.newBuffer(mAligned, mDataBufferType, mBufferSize); + public void timePut() throws Exception { + ByteBuffer src = BulkPerfTest.newBuffer(mAlign, mSBuf, mSize); + ByteBuffer data = BulkPerfTest.newBuffer(mAlign, mDBuf, mSize); BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); while (state.keepRunning()) { - src.position(mAligned ? 0 : 1); - data.position(mAligned ? 0 : 1); + src.position(mAlign ? 0 : 1); + data.position(mAlign ? 0 : 1); src.put(data); } } diff --git a/apct-tests/perftests/core/src/android/libcore/regression/IdnPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/IdnPerfTest.java new file mode 100644 index 000000000000..c60930f99682 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/IdnPerfTest.java @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.net.IDN; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class IdnPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeToUnicode() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + IDN.toASCII("fass.de"); + IDN.toASCII("faß.de"); + IDN.toASCII("fäß.de"); + IDN.toASCII("a\u200Cb"); + IDN.toASCII("öbb.at"); + IDN.toASCII("abc・日本.co.jp"); + IDN.toASCII("日本.co.jp"); + IDN.toASCII("x\u0327\u0301.de"); + IDN.toASCII("σόλοσ.gr"); + } + } + + @Test + public void timeToAscii() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + IDN.toUnicode("xn--fss-qla.de"); + IDN.toUnicode("xn--n00d.com"); + IDN.toUnicode("xn--bb-eka.at"); + IDN.toUnicode("xn--og-09a.de"); + IDN.toUnicode("xn--53h.de"); + IDN.toUnicode("xn--iny-zx5a.de"); + IDN.toUnicode("xn--abc-rs4b422ycvb.co.jp"); + IDN.toUnicode("xn--wgv71a.co.jp"); + IDN.toUnicode("xn--x-xbb7i.de"); + IDN.toUnicode("xn--wxaikc6b.gr"); + IDN.toUnicode("xn--wxaikc6b.xn--gr-gtd9a1b0g.de"); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/IntConstantDivisionPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/IntConstantDivisionPerfTest.java new file mode 100644 index 000000000000..abcc972b0ac3 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/IntConstantDivisionPerfTest.java @@ -0,0 +1,107 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class IntConstantDivisionPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeDivideIntByConstant2() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result /= 2; + } + } + + @Test + public void timeDivideIntByConstant8() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result /= 8; + } + } + + @Test + public void timeDivideIntByConstant10() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result /= 10; + } + } + + @Test + public void timeDivideIntByConstant100() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result /= 100; + } + } + + @Test + public void timeDivideIntByConstant100_HandOptimized() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = (int) ((0x51eb851fL * result) >>> 37); + } + } + + @Test + public void timeDivideIntByConstant2048() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result /= 2048; + } + } + + @Test + public void timeDivideIntByVariable2() { + int result = 1; + int factor = 2; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result /= factor; + } + } + + @Test + public void timeDivideIntByVariable10() { + int result = 1; + int factor = 10; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result /= factor; + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/IntConstantMultiplicationPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/IntConstantMultiplicationPerfTest.java new file mode 100644 index 000000000000..c9f06166e33b --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/IntConstantMultiplicationPerfTest.java @@ -0,0 +1,134 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class IntConstantMultiplicationPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeMultiplyIntByConstant6() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= 6; + } + } + + @Test + public void timeMultiplyIntByConstant7() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= 7; + } + } + + @Test + public void timeMultiplyIntByConstant8() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= 8; + } + } + + @Test + public void timeMultiplyIntByConstant8_Shift() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result <<= 3; + } + } + + @Test + public void timeMultiplyIntByConstant10() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= 10; + } + } + + @Test + public void timeMultiplyIntByConstant10_Shift() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = (result + (result << 2)) << 1; + } + } + + @Test + public void timeMultiplyIntByConstant2047() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= 2047; + } + } + + @Test + public void timeMultiplyIntByConstant2048() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= 2048; + } + } + + @Test + public void timeMultiplyIntByConstant2049() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= 2049; + } + } + + @Test + public void timeMultiplyIntByVariable10() { + int result = 1; + int factor = 10; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= factor; + } + } + + @Test + public void timeMultiplyIntByVariable8() { + int result = 1; + int factor = 8; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result *= factor; + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/IntConstantRemainderPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/IntConstantRemainderPerfTest.java new file mode 100644 index 000000000000..78f744c1b938 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/IntConstantRemainderPerfTest.java @@ -0,0 +1,98 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class IntConstantRemainderPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeRemainderIntByConstant2() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result %= 2; + } + } + + @Test + public void timeRemainderIntByConstant8() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result %= 8; + } + } + + @Test + public void timeRemainderIntByConstant10() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result %= 10; + } + } + + @Test + public void timeRemainderIntByConstant100() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result %= 100; + } + } + + @Test + public void timeRemainderIntByConstant2048() { + int result = 1; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result %= 2048; + } + } + + @Test + public void timeRemainderIntByVariable2() { + int result = 1; + int factor = 2; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result %= factor; + } + } + + @Test + public void timeRemainderIntByVariable10() { + int result = 1; + int factor = 10; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result %= factor; + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/IntegerPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/IntegerPerfTest.java new file mode 100644 index 000000000000..170bb58c46ed --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/IntegerPerfTest.java @@ -0,0 +1,173 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; + +import org.junit.Rule; +import org.junit.Test; + +public class IntegerPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeLongSignumBranch() { + int t = 0; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + t += signum1(-(++i)); + t += signum1(0); + t += signum1(i); + } + } + + @Test + public void timeLongSignumBranchFree() { + int t = 0; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + t += signum2(-(++i)); + t += signum2(0); + t += signum2(i); + } + } + + private static int signum1(long v) { + return v < 0 ? -1 : (v == 0 ? 0 : 1); + } + + private static int signum2(long v) { + return ((int) (v >> 63)) | (int) (-v >>> 63); // Hacker's delight 2-7 + } + + @Test + public void timeLongBitCount_BitSet() { + int t = 0; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + t += pop((long) ++i); + } + } + + private static int pop(long l) { + int count = popX(l & 0xffffffffL); + count += popX(l >>> 32); + return count; + } + + private static int popX(long x) { + // BEGIN android-note + // delegate to Integer.bitCount(i); consider using native code + // END android-note + x = x - ((x >>> 1) & 0x55555555); + x = (x & 0x33333333) + ((x >>> 2) & 0x33333333); + x = (x + (x >>> 4)) & 0x0f0f0f0f; + x = x + (x >>> 8); + x = x + (x >>> 16); + return (int) x & 0x0000003f; + } + + @Test + public void timeLongBitCount_2Int() { + int t = 0; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + t += pop2((long) ++i); + } + } + + private static int pop2(long l) { + int count = Integer.bitCount((int) (l & 0xffffffffL)); + count += Integer.bitCount((int) (l >>> 32)); + return count; + } + + @Test + public void timeLongBitCount_Long() { + int t = 0; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + t += Long.bitCount((long) ++i); + } + } + + /** + * Table for Seal's algorithm for Number of Trailing Zeros. Hacker's Delight online, Figure 5-18 + * (http://www.hackersdelight.org/revisions.pdf) The entries whose value is -1 are never + * referenced. + */ + private static final byte[] NTZ_TABLE = { + 32, 0, 1, 12, 2, 6, -1, 13, 3, -1, 7, -1, -1, -1, -1, 14, + 10, 4, -1, -1, 8, -1, -1, 25, -1, -1, -1, -1, -1, 21, 27, 15, + 31, 11, 5, -1, -1, -1, -1, -1, 9, -1, -1, 24, -1, -1, 20, 26, + 30, -1, -1, -1, -1, 23, -1, 19, 29, -1, 22, 18, 28, 17, 16, -1 + }; + + private static int numberOfTrailingZerosHD(int i) { + // Seal's algorithm - Hacker's Delight 5-18 + i &= -i; + i = (i << 4) + i; // x *= 17 + i = (i << 6) + i; // x *= 65 + i = (i << 16) - i; // x *= 65535 + return NTZ_TABLE[i >>> 26]; + } + + private static int numberOfTrailingZerosOL(int i) { + return NTZ_TABLE[((i & -i) * 0x0450FBAF) >>> 26]; + } + + @Test + public void timeNumberOfTrailingZerosHD() { + int t = 0; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + t += numberOfTrailingZerosHD(++i); + } + } + + @Test + public void timeNumberOfTrailingZerosOL() { + int t = 0; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + t += numberOfTrailingZerosOL(++i); + } + } + + @Test + public void timeIntegerValueOf() throws Exception { + String[] intStrings = + new String[] { + "0", "1", "12", "123", "1234", "12345", "123456", "1234567", "12345678" + }; + int t = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + for (int j = 0; j < intStrings.length; ++j) { + t += Integer.valueOf(intStrings[j]); + } + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/IntegralToStringPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/IntegralToStringPerfTest.java new file mode 100644 index 000000000000..5129fcbfb247 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/IntegralToStringPerfTest.java @@ -0,0 +1,229 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class IntegralToStringPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + private static final int SMALL = 12; + private static final int MEDIUM = 12345; + private static final int LARGE = 12345678; + + @Test + public void time_IntegerToString_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(SMALL); + } + } + + @Test + public void time_IntegerToString_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(MEDIUM); + } + } + + @Test + public void time_IntegerToString_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(LARGE); + } + } + + @Test + public void time_IntegerToString2_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(SMALL, 2); + } + } + + @Test + public void time_IntegerToString2_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(MEDIUM, 2); + } + } + + @Test + public void time_IntegerToString2_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(LARGE, 2); + } + } + + @Test + public void time_IntegerToString10_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(SMALL, 10); + } + } + + @Test + public void time_IntegerToString10_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(MEDIUM, 10); + } + } + + @Test + public void time_IntegerToString10_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(LARGE, 10); + } + } + + @Test + public void time_IntegerToString16_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(SMALL, 16); + } + } + + @Test + public void time_IntegerToString16_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(MEDIUM, 16); + } + } + + @Test + public void time_IntegerToString16_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toString(LARGE, 16); + } + } + + @Test + public void time_IntegerToBinaryString_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toBinaryString(SMALL); + } + } + + @Test + public void time_IntegerToBinaryString_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toBinaryString(MEDIUM); + } + } + + @Test + public void time_IntegerToBinaryString_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toBinaryString(LARGE); + } + } + + @Test + public void time_IntegerToHexString_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toHexString(SMALL); + } + } + + @Test + public void time_IntegerToHexString_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toHexString(MEDIUM); + } + } + + @Test + public void time_IntegerToHexString_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Integer.toHexString(LARGE); + } + } + + @Test + public void time_StringBuilder_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + new StringBuilder().append(SMALL); + } + } + + @Test + public void time_StringBuilder_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + new StringBuilder().append(MEDIUM); + } + } + + @Test + public void time_StringBuilder_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + new StringBuilder().append(LARGE); + } + } + + @Test + public void time_Formatter_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%d", SMALL); + } + } + + @Test + public void time_Formatter_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%d", MEDIUM); + } + } + + @Test + public void time_Formatter_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%d", LARGE); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/KeyPairGeneratorPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/KeyPairGeneratorPerfTest.java new file mode 100644 index 000000000000..6fe9059cb3de --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/KeyPairGeneratorPerfTest.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.SecureRandom; +import java.util.Arrays; +import java.util.Collection; + +@RunWith(Parameterized.class) +@LargeTest +public class KeyPairGeneratorPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Parameters(name = "mAlgorithm={0}, mImplementation={1}") + public static Collection<Object[]> data() { + return Arrays.asList( + new Object[][] { + {Algorithm.RSA, Implementation.BouncyCastle}, + {Algorithm.DSA, Implementation.BouncyCastle}, + {Algorithm.RSA, Implementation.OpenSSL} + }); + } + + @Parameterized.Parameter(0) + public Algorithm mAlgorithm; + + @Parameterized.Parameter(1) + public Implementation mImplementation; + + public enum Algorithm { + RSA, + DSA, + }; + + public enum Implementation { + OpenSSL, + BouncyCastle + }; + + private String mGeneratorAlgorithm; + private KeyPairGenerator mGenerator; + private SecureRandom mRandom; + + @Before + public void setUp() throws Exception { + this.mGeneratorAlgorithm = mAlgorithm.toString(); + + final String provider; + if (mImplementation == Implementation.BouncyCastle) { + provider = "BC"; + } else { + provider = "AndroidOpenSSL"; + } + + this.mGenerator = KeyPairGenerator.getInstance(mGeneratorAlgorithm, provider); + this.mRandom = SecureRandom.getInstance("SHA1PRNG"); + this.mGenerator.initialize(1024); + } + + @Test + public void time() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + KeyPair keyPair = mGenerator.generateKeyPair(); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/LoopingBackwardsPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/LoopingBackwardsPerfTest.java new file mode 100644 index 000000000000..414764d292b8 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/LoopingBackwardsPerfTest.java @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.util.Arrays; +import java.util.Collection; + +/** + * Testing the old canard that looping backwards is faster. + * + * @author Kevin Bourrillion + */ +@RunWith(Parameterized.class) +@LargeTest +public class LoopingBackwardsPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Parameters(name = "mMax={0}") + public static Collection<Object[]> data() { + return Arrays.asList(new Object[][] {{2}, {20}, {2000}, {20000000}}); + } + + @Parameterized.Parameter(0) + public int mMax; + + @Test + public void timeForwards() { + int fake = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + for (int j = 0; j < mMax; j++) { + fake += j; + } + } + } + + @Test + public void timeBackwards() { + int fake = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + for (int j = mMax - 1; j >= 0; j--) { + fake += j; + } + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/MathPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/MathPerfTest.java new file mode 100644 index 000000000000..4c2d7fb7e663 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/MathPerfTest.java @@ -0,0 +1,551 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +/** + * Many of these tests are bogus in that the cost will vary wildly depending on inputs. For _my_ + * current purposes, that's okay. But beware! + */ +@RunWith(AndroidJUnit4.class) +@LargeTest +public class MathPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + private final double mDouble = 1.2; + private final float mFloat = 1.2f; + private final int mInt = 1; + private final long mLong = 1L; + + // NOTE: To avoid the benchmarked function from being optimized away, we store the result + // and use it as the benchmark's return value. This is good enough for now but may not be in + // the future, a smart compiler could determine that the result value will depend on whether + // we get into the loop or not and turn the whole loop into an if statement. + + @Test + public void timeAbsD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.abs(mDouble); + } + } + + @Test + public void timeAbsF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.abs(mFloat); + } + } + + @Test + public void timeAbsI() { + int result = mInt; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.abs(mInt); + } + } + + @Test + public void timeAbsL() { + long result = mLong; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.abs(mLong); + } + } + + @Test + public void timeAcos() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.acos(mDouble); + } + } + + @Test + public void timeAsin() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.asin(mDouble); + } + } + + @Test + public void timeAtan() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.atan(mDouble); + } + } + + @Test + public void timeAtan2() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.atan2(3, 4); + } + } + + @Test + public void timeCbrt() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.cbrt(mDouble); + } + } + + @Test + public void timeCeil() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.ceil(mDouble); + } + } + + @Test + public void timeCopySignD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.copySign(mDouble, mDouble); + } + } + + @Test + public void timeCopySignF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.copySign(mFloat, mFloat); + } + } + + @Test + public void timeCopySignD_strict() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = StrictMath.copySign(mDouble, mDouble); + } + } + + @Test + public void timeCopySignF_strict() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = StrictMath.copySign(mFloat, mFloat); + } + } + + @Test + public void timeCos() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.cos(mDouble); + } + } + + @Test + public void timeCosh() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.cosh(mDouble); + } + } + + @Test + public void timeExp() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.exp(mDouble); + } + } + + @Test + public void timeExpm1() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.expm1(mDouble); + } + } + + @Test + public void timeFloor() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.floor(mDouble); + } + } + + @Test + public void timeGetExponentD() { + int result = mInt; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.getExponent(mDouble); + } + } + + @Test + public void timeGetExponentF() { + int result = mInt; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.getExponent(mFloat); + } + } + + @Test + public void timeHypot() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.hypot(mDouble, mDouble); + } + } + + @Test + public void timeIEEEremainder() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.IEEEremainder(mDouble, mDouble); + } + } + + @Test + public void timeLog() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.log(mDouble); + } + } + + @Test + public void timeLog10() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.log10(mDouble); + } + } + + @Test + public void timeLog1p() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.log1p(mDouble); + } + } + + @Test + public void timeMaxD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.max(mDouble, mDouble); + } + } + + @Test + public void timeMaxF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.max(mFloat, mFloat); + } + } + + @Test + public void timeMaxI() { + int result = mInt; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.max(mInt, mInt); + } + } + + @Test + public void timeMaxL() { + long result = mLong; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.max(mLong, mLong); + } + } + + @Test + public void timeMinD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.min(mDouble, mDouble); + } + } + + @Test + public void timeMinF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.min(mFloat, mFloat); + } + } + + @Test + public void timeMinI() { + int result = mInt; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.min(mInt, mInt); + } + } + + @Test + public void timeMinL() { + long result = mLong; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.min(mLong, mLong); + } + } + + @Test + public void timeNextAfterD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.nextAfter(mDouble, mDouble); + } + } + + @Test + public void timeNextAfterF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.nextAfter(mFloat, mFloat); + } + } + + @Test + public void timeNextUpD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.nextUp(mDouble); + } + } + + @Test + public void timeNextUpF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.nextUp(mFloat); + } + } + + @Test + public void timePow() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.pow(mDouble, mDouble); + } + } + + @Test + public void timeRandom() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.random(); + } + } + + @Test + public void timeRint() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.rint(mDouble); + } + } + + @Test + public void timeRoundD() { + long result = mLong; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.round(mDouble); + } + } + + @Test + public void timeRoundF() { + int result = mInt; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.round(mFloat); + } + } + + @Test + public void timeScalbD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.scalb(mDouble, 5); + } + } + + @Test + public void timeScalbF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.scalb(mFloat, 5); + } + } + + @Test + public void timeSignumD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.signum(mDouble); + } + } + + @Test + public void timeSignumF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.signum(mFloat); + } + } + + @Test + public void timeSin() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.sin(mDouble); + } + } + + @Test + public void timeSinh() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.sinh(mDouble); + } + } + + @Test + public void timeSqrt() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.sqrt(mDouble); + } + } + + @Test + public void timeTan() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.tan(mDouble); + } + } + + @Test + public void timeTanh() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.tanh(mDouble); + } + } + + @Test + public void timeToDegrees() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.toDegrees(mDouble); + } + } + + @Test + public void timeToRadians() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.toRadians(mDouble); + } + } + + @Test + public void timeUlpD() { + double result = mDouble; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.ulp(mDouble); + } + } + + @Test + public void timeUlpF() { + float result = mFloat; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + result = Math.ulp(mFloat); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/MessageDigestPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/MessageDigestPerfTest.java new file mode 100644 index 000000000000..a27e16a46a04 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/MessageDigestPerfTest.java @@ -0,0 +1,209 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.nio.ByteBuffer; +import java.security.MessageDigest; +import java.util.Arrays; +import java.util.Collection; + +@RunWith(Parameterized.class) +@LargeTest +public class MessageDigestPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Parameters(name = "mAlgorithm={0}") + public static Collection<Object[]> data() { + return Arrays.asList( + new Object[][] { + {Algorithm.MD5}, + {Algorithm.SHA1}, + {Algorithm.SHA256}, + {Algorithm.SHA384}, + {Algorithm.SHA512} + }); + } + + @Parameterized.Parameter(0) + public Algorithm mAlgorithm; + + public String mProvider = "AndroidSSL"; + + private static final int DATA_SIZE = 8192; + private static final byte[] DATA = new byte[DATA_SIZE]; + + static { + for (int i = 0; i < DATA_SIZE; i++) { + DATA[i] = (byte) i; + } + } + + private static final int LARGE_DATA_SIZE = 256 * 1024; + private static final byte[] LARGE_DATA = new byte[LARGE_DATA_SIZE]; + + static { + for (int i = 0; i < LARGE_DATA_SIZE; i++) { + LARGE_DATA[i] = (byte) i; + } + } + + private static final ByteBuffer SMALL_BUFFER = ByteBuffer.wrap(DATA); + private static final ByteBuffer SMALL_DIRECT_BUFFER = ByteBuffer.allocateDirect(DATA_SIZE); + + static { + SMALL_DIRECT_BUFFER.put(DATA); + SMALL_DIRECT_BUFFER.flip(); + } + + private static final ByteBuffer LARGE_BUFFER = ByteBuffer.wrap(LARGE_DATA); + private static final ByteBuffer LARGE_DIRECT_BUFFER = + ByteBuffer.allocateDirect(LARGE_DATA_SIZE); + + static { + LARGE_DIRECT_BUFFER.put(LARGE_DATA); + LARGE_DIRECT_BUFFER.flip(); + } + + public enum Algorithm { + MD5, + SHA1, + SHA256, + SHA384, + SHA512 + }; + + @Test + public void time() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + digest.update(DATA, 0, DATA_SIZE); + digest.digest(); + } + } + + @Test + public void timeLargeArray() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + digest.update(LARGE_DATA, 0, LARGE_DATA_SIZE); + digest.digest(); + } + } + + @Test + public void timeSmallChunkOfLargeArray() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + digest.update(LARGE_DATA, LARGE_DATA_SIZE / 2, DATA_SIZE); + digest.digest(); + } + } + + @Test + public void timeSmallByteBuffer() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + SMALL_BUFFER.position(0); + SMALL_BUFFER.limit(SMALL_BUFFER.capacity()); + digest.update(SMALL_BUFFER); + digest.digest(); + } + } + + @Test + public void timeSmallDirectByteBuffer() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + SMALL_DIRECT_BUFFER.position(0); + SMALL_DIRECT_BUFFER.limit(SMALL_DIRECT_BUFFER.capacity()); + digest.update(SMALL_DIRECT_BUFFER); + digest.digest(); + } + } + + @Test + public void timeLargeByteBuffer() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + LARGE_BUFFER.position(0); + LARGE_BUFFER.limit(LARGE_BUFFER.capacity()); + digest.update(LARGE_BUFFER); + digest.digest(); + } + } + + @Test + public void timeLargeDirectByteBuffer() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + LARGE_DIRECT_BUFFER.position(0); + LARGE_DIRECT_BUFFER.limit(LARGE_DIRECT_BUFFER.capacity()); + digest.update(LARGE_DIRECT_BUFFER); + digest.digest(); + } + } + + @Test + public void timeSmallChunkOfLargeByteBuffer() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + LARGE_BUFFER.position(LARGE_BUFFER.capacity() / 2); + LARGE_BUFFER.limit(LARGE_BUFFER.position() + DATA_SIZE); + digest.update(LARGE_BUFFER); + digest.digest(); + } + } + + @Test + public void timeSmallChunkOfLargeDirectByteBuffer() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + MessageDigest digest = + MessageDigest.getInstance(mAlgorithm.toString(), mProvider); + LARGE_DIRECT_BUFFER.position(LARGE_DIRECT_BUFFER.capacity() / 2); + LARGE_DIRECT_BUFFER.limit(LARGE_DIRECT_BUFFER.position() + DATA_SIZE); + digest.update(LARGE_DIRECT_BUFFER); + digest.digest(); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/MutableIntPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/MutableIntPerfTest.java new file mode 100644 index 000000000000..37bd73c8731a --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/MutableIntPerfTest.java @@ -0,0 +1,124 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.util.Arrays; +import java.util.Collection; +import java.util.concurrent.atomic.AtomicInteger; + +@RunWith(Parameterized.class) +@LargeTest +public final class MutableIntPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + enum Kind { + ARRAY() { + int[] mValue = new int[1]; + + @Override + void timeCreate(BenchmarkState state) { + while (state.keepRunning()) { + mValue = new int[] {5}; + } + } + + @Override + void timeIncrement(BenchmarkState state) { + while (state.keepRunning()) { + mValue[0]++; + } + } + + @Override + int timeGet(BenchmarkState state) { + int sum = 0; + while (state.keepRunning()) { + sum += mValue[0]; + } + return sum; + } + }, + ATOMIC() { + AtomicInteger mValue = new AtomicInteger(); + + @Override + void timeCreate(BenchmarkState state) { + while (state.keepRunning()) { + mValue = new AtomicInteger(5); + } + } + + @Override + void timeIncrement(BenchmarkState state) { + while (state.keepRunning()) { + mValue.incrementAndGet(); + } + } + + @Override + int timeGet(BenchmarkState state) { + int sum = 0; + while (state.keepRunning()) { + sum += mValue.intValue(); + } + return sum; + } + }; + + abstract void timeCreate(BenchmarkState state); + + abstract void timeIncrement(BenchmarkState state); + + abstract int timeGet(BenchmarkState state); + } + + @Parameters(name = "mKind={0}") + public static Collection<Object[]> data() { + return Arrays.asList(new Object[][] {{Kind.ARRAY}, {Kind.ATOMIC}}); + } + + @Parameterized.Parameter(0) + public Kind mKind; + + @Test + public void timeCreate() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + mKind.timeCreate(state); + } + + @Test + public void timeIncrement() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + mKind.timeIncrement(state); + } + + @Test + public void timeGet() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + mKind.timeGet(state); + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/NumberFormatPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/NumberFormatPerfTest.java new file mode 100644 index 000000000000..dae185e1209c --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/NumberFormatPerfTest.java @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.text.NumberFormat; +import java.util.Locale; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class NumberFormatPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + private static Locale sLocale = Locale.getDefault(Locale.Category.FORMAT); + + @Test + public void time_instantiation() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + NumberFormat.getInstance(sLocale); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/PriorityQueuePerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/PriorityQueuePerfTest.java new file mode 100644 index 000000000000..8801a5690cb2 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/PriorityQueuePerfTest.java @@ -0,0 +1,127 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.List; +import java.util.PriorityQueue; +import java.util.Random; + +@RunWith(Parameterized.class) +@LargeTest +public class PriorityQueuePerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Parameters(name = "mQueueSize={0}, mHitRate={1}") + public static Collection<Object[]> data() { + return Arrays.asList( + new Object[][] { + {100, 0}, + {1000, 0}, + {10000, 0}, + {100, 25}, + {1000, 25}, + {10000, 25}, + {100, 50}, + {1000, 50}, + {10000, 50}, + {100, 75}, + {1000, 75}, + {10000, 75}, + {100, 100}, + {1000, 100}, + {10000, 100} + }); + } + + @Parameterized.Parameter(0) + public int mQueueSize; + + @Parameterized.Parameter(1) + public int mHitRate; + + private PriorityQueue<Integer> mPq; + private PriorityQueue<Integer> mUsepq; + private List<Integer> mSeekElements; + private Random mRandom = new Random(189279387L); + + @Before + public void setUp() throws Exception { + mPq = new PriorityQueue<Integer>(); + mUsepq = new PriorityQueue<Integer>(); + mSeekElements = new ArrayList<Integer>(); + List<Integer> allElements = new ArrayList<Integer>(); + int numShared = (int) (mQueueSize * ((double) mHitRate / 100)); + // the total number of elements we require to engineer a hit rate of mHitRate% + int totalElements = 2 * mQueueSize - numShared; + for (int i = 0; i < totalElements; i++) { + allElements.add(i); + } + // shuffle these elements so that we get a reasonable distribution of missed elements + Collections.shuffle(allElements, mRandom); + // add shared elements + for (int i = 0; i < numShared; i++) { + mPq.add(allElements.get(i)); + mSeekElements.add(allElements.get(i)); + } + // add priority queue only elements (these won't be touched) + for (int i = numShared; i < mQueueSize; i++) { + mPq.add(allElements.get(i)); + } + // add non-priority queue elements (these will be misses) + for (int i = mQueueSize; i < totalElements; i++) { + mSeekElements.add(allElements.get(i)); + } + mUsepq = new PriorityQueue<Integer>(mPq); + // shuffle again so that elements are accessed in a different pattern than they were + // inserted + Collections.shuffle(mSeekElements, mRandom); + } + + @Test + public void timeRemove() { + boolean fake = false; + int elementsSize = mSeekElements.size(); + // At most allow the queue to empty 10%. + int resizingThreshold = mQueueSize / 10; + int i = 0; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + // Reset queue every so often. This will be called more often for smaller + // mQueueSizes, but since a copy is linear, it will also cost proportionally + // less, and hopefully it will approximately balance out. + if (++i % resizingThreshold == 0) { + mUsepq = new PriorityQueue<Integer>(mPq); + } + fake = mUsepq.remove(mSeekElements.get(i % elementsSize)); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/PropertyAccessPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/PropertyAccessPerfTest.java new file mode 100644 index 000000000000..21ccba5cc2e7 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/PropertyAccessPerfTest.java @@ -0,0 +1,149 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Before; +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public final class PropertyAccessPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + private View mView = new View(); + private Method mSetX; + private GeneratedProperty mGeneratedSetter = new GeneratedSetter(); + private GeneratedProperty mGeneratedField = new GeneratedField(); + private Field mX; + private Object[] mArgsBomX = new Object[1]; + + @Before + public void setUp() throws Exception { + mSetX = View.class.getDeclaredMethod("mSetX", float.class); + mX = View.class.getDeclaredField("mX"); + } + + @Test + public void timeDirectSetter() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + mView.mSetX(0.1f); + } + } + + @Test + public void timeDirectFieldSet() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + mView.mX = 0.1f; + } + } + + @Test + public void timeDirectSetterAndBomXing() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float value = 0.1f; + mView.mSetX(value); + } + } + + @Test + public void timeDirectFieldSetAndBomXing() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float value = 0.1f; + mView.mX = value; + } + } + + @Test + public void timeReflectionSetterAndTwoBomXes() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + mSetX.invoke(mView, 0.1f); + } + } + + @Test + public void timeReflectionSetterAndOneBomX() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + mArgsBomX[0] = 0.1f; + mSetX.invoke(mView, mArgsBomX); + } + } + + @Test + public void timeReflectionFieldSet() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + mX.setFloat(mView, 0.1f); + } + } + + @Test + public void timeGeneratedSetter() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + mGeneratedSetter.setFloat(mView, 0.1f); + } + } + + @Test + public void timeGeneratedFieldSet() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + mGeneratedField.setFloat(mView, 0.1f); + } + } + + static class View { + float mX; + + public void mSetX(float mX) { + this.mX = mX; + } + } + + interface GeneratedProperty { + void setFloat(View v, float f); + } + + static class GeneratedSetter implements GeneratedProperty { + public void setFloat(View v, float f) { + v.mSetX(f); + } + } + + static class GeneratedField implements GeneratedProperty { + public void setFloat(View v, float f) { + v.mX = f; + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/ProviderPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/ProviderPerfTest.java new file mode 100644 index 000000000000..f7bcf12c858e --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/ProviderPerfTest.java @@ -0,0 +1,65 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.security.Provider; +import java.security.Security; + +import javax.crypto.Cipher; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class ProviderPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeStableProviders() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Cipher c = Cipher.getInstance("RSA"); + } + } + + @Test + public void timeWithNewProvider() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Security.addProvider(new MockProvider()); + try { + Cipher c = Cipher.getInstance("RSA"); + } finally { + Security.removeProvider("Mock"); + } + } + } + + private static class MockProvider extends Provider { + MockProvider() { + super("Mock", 1.0, "Mock me!"); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/R.java b/apct-tests/perftests/core/src/android/libcore/regression/R.java new file mode 100644 index 000000000000..d1641b32d06e --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/R.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2014 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +/** + * This file is a subset of the frameworks' R.java (resource definition) file + * with references to android specific annotations stripped out. + */ +public final class R { + private R() {} + + public final int mTextAppearanceLargePopupMenu = 0; + public static final int WEEK_NUMBER_COLOR = 0; +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/RandomPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/RandomPerfTest.java new file mode 100644 index 000000000000..d8bff4cc20d1 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/RandomPerfTest.java @@ -0,0 +1,72 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.security.SecureRandom; +import java.util.Random; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class RandomPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeNewRandom() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Random rng = new Random(); + rng.nextInt(); + } + } + + @Test + public void timeReusedRandom() throws Exception { + Random rng = new Random(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + rng.nextInt(); + } + } + + @Test + public void timeReusedSecureRandom() throws Exception { + SecureRandom rng = new SecureRandom(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + rng.nextInt(); + } + } + + @Test + public void timeNewSecureRandom() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + SecureRandom rng = new SecureRandom(); + rng.nextInt(); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/RealToStringPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/RealToStringPerfTest.java new file mode 100644 index 000000000000..2542df90896f --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/RealToStringPerfTest.java @@ -0,0 +1,173 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class RealToStringPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + private static final float SMALL = -123.45f; + private static final float MEDIUM = -123.45e8f; + private static final float LARGE = -123.45e36f; + + @Test + public void timeFloat_toString_NaN() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(Float.NaN); + } + } + + @Test + public void timeFloat_toString_NEGATIVE_INFINITY() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(Float.NEGATIVE_INFINITY); + } + } + + @Test + public void timeFloat_toString_POSITIVE_INFINITY() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(Float.POSITIVE_INFINITY); + } + } + + @Test + public void timeFloat_toString_zero() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(0.0f); + } + } + + @Test + public void timeFloat_toString_minusZero() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(-0.0f); + } + } + + @Test + public void timeFloat_toString_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(SMALL); + } + } + + @Test + public void timeFloat_toString_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(MEDIUM); + } + } + + @Test + public void timeFloat_toString_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + Float.toString(LARGE); + } + } + + @Test + public void timeStringBuilder_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + new StringBuilder().append(SMALL); + } + } + + @Test + public void timeStringBuilder_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + new StringBuilder().append(MEDIUM); + } + } + + @Test + public void timeStringBuilder_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + new StringBuilder().append(LARGE); + } + } + + @Test + public void timeFormatter_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%f", SMALL); + } + } + + @Test + public void timeFormatter_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%f", MEDIUM); + } + } + + @Test + public void timeFormatter_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%f", LARGE); + } + } + + @Test + public void timeFormatter_dot2f_small() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%.2f", SMALL); + } + } + + @Test + public void timeFormatter_dot2f_medium() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%.2f", MEDIUM); + } + } + + @Test + public void timeFormatter_dot2f_large() { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + String.format("%.2f", LARGE); + } + } +} diff --git a/apct-tests/perftests/core/src/android/libcore/regression/ReflectionPerfTest.java b/apct-tests/perftests/core/src/android/libcore/regression/ReflectionPerfTest.java new file mode 100644 index 000000000000..b06662ccd9b5 --- /dev/null +++ b/apct-tests/perftests/core/src/android/libcore/regression/ReflectionPerfTest.java @@ -0,0 +1,296 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.libcore.regression; + +import android.perftests.utils.BenchmarkState; +import android.perftests.utils.PerfStatusReporter; +import android.test.suitebuilder.annotation.LargeTest; + +import androidx.test.runner.AndroidJUnit4; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.runner.RunWith; + +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; +import java.lang.reflect.Method; + +@RunWith(AndroidJUnit4.class) +@LargeTest +public class ReflectionPerfTest { + @Rule public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); + + @Test + public void timeObject_getClass() throws Exception { + C c = new C(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + c.getClass(); + } + } + + @Test + public void timeClass_getField() throws Exception { + Class<?> klass = C.class; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + klass.getField("f"); + } + } + + @Test + public void timeClass_getDeclaredField() throws Exception { + Class<?> klass = C.class; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + klass.getDeclaredField("f"); + } + } + + @Test + public void timeClass_getConstructor() throws Exception { + Class<?> klass = C.class; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + klass.getConstructor(); + } + } + + @Test + public void timeClass_newInstance() throws Exception { + Class<?> klass = C.class; + Constructor constructor = klass.getConstructor(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + constructor.newInstance(); + } + } + + @Test + public void timeClass_getMethod() throws Exception { + Class<?> klass = C.class; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + klass.getMethod("m"); + } + } + + @Test + public void timeClass_getDeclaredMethod() throws Exception { + Class<?> klass = C.class; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + klass.getDeclaredMethod("m"); + } + } + + @Test + public void timeField_setInt() throws Exception { + Class<?> klass = C.class; + Field f = klass.getDeclaredField("f"); + C instance = new C(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + f.setInt(instance, 1); + } + } + + @Test + public void timeField_getInt() throws Exception { + Class<?> klass = C.class; + Field f = klass.getDeclaredField("f"); + C instance = new C(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + f.getInt(instance); + } + } + + @Test + public void timeMethod_invokeV() throws Exception { + Class<?> klass = C.class; + Method m = klass.getDeclaredMethod("m"); + C instance = new C(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + m.invoke(instance); + } + } + + @Test + public void timeMethod_invokeStaticV() throws Exception { + Class<?> klass = C.class; + Method m = klass.getDeclaredMethod("sm"); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + m.invoke(null); + } + } + + @Test + public void timeMethod_invokeI() throws Exception { + Class<?> klass = C.class; + Method m = klass.getDeclaredMethod("setField", int.class); + C instance = new C(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + m.invoke(instance, 1); + } + } + + @Test + public void timeMethod_invokePreBoxedI() throws Exception { + Class<?> klass = C.class; + Method m = klass.getDeclaredMethod("setField", int.class); + C instance = new C(); + Integer one = Integer.valueOf(1); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + m.invoke(instance, one); + } + } + + @Test + public void timeMethod_invokeStaticI() throws Exception { + Class<?> klass = C.class; + Method m = klass.getDeclaredMethod("setStaticField", int.class); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + m.invoke(null, 1); + } + } + + @Test + public void timeMethod_invokeStaticPreBoxedI() throws Exception { + Class<?> klass = C.class; + Method m = klass.getDeclaredMethod("setStaticField", int.class); + Integer one = Integer.valueOf(1); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + m.invoke(null, one); + } + } + + @Test + public void timeRegularMethodInvocation() throws Exception { + C instance = new C(); + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + instance.setField(1); + } + } + + @Test + public void timeRegularConstructor() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + new C(); + } + } + + @Test + public void timeClass_classNewInstance() throws Exception { + Class<?> klass = C.class; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + klass.newInstance(); + } + } + + @Test + public void timeClass_isInstance() throws Exception { + D d = new D(); + Class<?> klass = IC.class; + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + klass.isInstance(d); + } + } + + @Test + public void timeGetInstanceField() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + // TODO: Write a test script that generates both the classes we're + // reflecting on and the test case for each of its fields. + R.class.getField("mTextAppearanceLargePopupMenu"); + } + } + + @Test + public void timeGetStaticField() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + R.class.getField("WEEK_NUMBER_COLOR"); + } + } + + @Test + public void timeGetInterfaceStaticField() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + F.class.getField("SF"); + } + } + + @Test + public void timeGetSuperClassField() throws Exception { + BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); + while (state.keepRunning()) { + G.class.getField("f"); + } + } + + public static class C { + public static int sf = 0; + public int f = 0; + + public C() { + // A non-empty constructor so we don't get optimized away. + f = 1; + } + + public void m() {} + + public static void sm() {} + + public void setField(int value) { + f = value; + } + + public static void setStaticField(int value) { + sf = value; + } + } + + interface IA {} + + interface IB extends IA {} + + interface IC extends IB { + int SF = 0; + } + + class D implements IC {} + + class E extends D {} + + class F extends E implements IB {} + + class G extends C {} +} diff --git a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java index f7fe9cab60ae..68801bcac4ba 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java +++ b/apex/jobscheduler/service/java/com/android/server/job/JobServiceContext.java @@ -43,6 +43,7 @@ import android.os.Looper; import android.os.Message; import android.os.PowerManager; import android.os.RemoteException; +import android.os.Trace; import android.os.UserHandle; import android.util.EventLog; import android.util.IndentingPrintWriter; @@ -361,6 +362,9 @@ public final class JobServiceContext implements ServiceConnection { job.getJob().getPriority(), job.getEffectivePriority(), job.getNumFailures()); + // Use the context's ID to distinguish traces since there'll only be one job running + // per context. + Trace.asyncTraceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, job.getBatteryName(), getId()); try { mBatteryStats.noteJobStart(job.getBatteryName(), job.getSourceUid()); } catch (RemoteException e) { @@ -1024,6 +1028,7 @@ public final class JobServiceContext implements ServiceConnection { completedJob.getJob().getPriority(), completedJob.getEffectivePriority(), completedJob.getNumFailures()); + Trace.asyncTraceEnd(Trace.TRACE_TAG_SYSTEM_SERVER, completedJob.getBatteryName(), getId()); try { mBatteryStats.noteJobFinish(mRunningJob.getBatteryName(), mRunningJob.getSourceUid(), internalStopReason); diff --git a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java index 251cf5640de7..e0f58e3fa6e3 100644 --- a/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java +++ b/apex/jobscheduler/service/java/com/android/server/job/controllers/JobStatus.java @@ -496,7 +496,7 @@ public final class JobStatus { this.batteryName = this.sourceTag != null ? this.sourceTag + ":" + job.getService().getPackageName() : job.getService().flattenToShortString(); - this.tag = "*job*/" + this.batteryName; + this.tag = "*job*/" + this.batteryName + "#" + job.getId(); this.earliestRunTimeElapsedMillis = earliestRunTimeElapsedMillis; this.latestRunTimeElapsedMillis = latestRunTimeElapsedMillis; diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 873e97ea1430..f98ad4e07da8 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -770,6 +770,10 @@ public class DevicePolicyManager { * <p>If this extra is set to {@code true}, the provisioning flow will still try to connect to * the internet, but if it fails it will start the offline provisioning flow. * + * <p>For T if this extra is set to {@code true}, the provisioning flow will be forced through + * the platform and there will be no attempt to download and install the device policy + * management role holder. + * * <p>The default value is {@code false}. * * <p>This extra is respected when provided via the provisioning intent actions such as {@link diff --git a/core/java/android/debug/OWNERS b/core/java/android/debug/OWNERS new file mode 100644 index 000000000000..b97f7956d115 --- /dev/null +++ b/core/java/android/debug/OWNERS @@ -0,0 +1 @@ +include platform/packages/modules/adb:/OWNERS diff --git a/core/java/android/inputmethodservice/InputMethodService.java b/core/java/android/inputmethodservice/InputMethodService.java index 9c146b58de49..655e3193e2d0 100644 --- a/core/java/android/inputmethodservice/InputMethodService.java +++ b/core/java/android/inputmethodservice/InputMethodService.java @@ -2987,11 +2987,6 @@ public class InputMethodService extends AbstractInputMethodService { * the text. This is called whether or not the input method has requested * extracted text updates, although if so it will not receive this call * if the extracted text has changed as well. - * - * <p>Be careful about changing the text in reaction to this call with - * methods such as setComposingText, commitText or - * deleteSurroundingText. If the cursor moves as a result, this method - * will be called again, which may result in an infinite loop. * * <p>The default implementation takes care of updating the cursor in * the extract text, if it is being shown. diff --git a/core/java/android/os/Environment.java b/core/java/android/os/Environment.java index 5177cb4f8549..ffa9507ebc2a 100644 --- a/core/java/android/os/Environment.java +++ b/core/java/android/os/Environment.java @@ -39,9 +39,9 @@ import android.util.Log; import java.io.File; import java.io.IOException; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; -import java.util.LinkedList; import java.util.List; import java.util.Objects; @@ -977,7 +977,7 @@ public class Environment { } private static boolean hasInterestingFiles(File dir) { - final LinkedList<File> explore = new LinkedList<>(); + final ArrayDeque<File> explore = new ArrayDeque<>(); explore.add(dir); while (!explore.isEmpty()) { dir = explore.pop(); diff --git a/core/java/android/os/Parcel.java b/core/java/android/os/Parcel.java index c68fb8544569..1dedc2666582 100644 --- a/core/java/android/os/Parcel.java +++ b/core/java/android/os/Parcel.java @@ -247,6 +247,7 @@ public final class Parcel { private ArrayMap<Class, Object> mClassCookies; private RuntimeException mStack; + private boolean mRecycled = false; /** @hide */ @TestApi @@ -528,6 +529,7 @@ public final class Parcel { if (res == null) { res = new Parcel(0); } else { + res.mRecycled = false; if (DEBUG_RECYCLE) { res.mStack = new RuntimeException(); } @@ -556,7 +558,15 @@ public final class Parcel { * the object after this call. */ public final void recycle() { - if (DEBUG_RECYCLE) mStack = null; + if (mRecycled) { + Log.w(TAG, "Recycle called on unowned Parcel. (recycle twice?)", mStack); + } + mRecycled = true; + + // We try to reset the entire object here, but in order to be + // able to print a stack when a Parcel is recycled twice, that + // is cleared in obtain instead. + mClassCookies = null; freeBuffer(); @@ -5112,6 +5122,7 @@ public final class Parcel { if (res == null) { res = new Parcel(obj); } else { + res.mRecycled = false; if (DEBUG_RECYCLE) { res.mStack = new RuntimeException(); } @@ -5160,7 +5171,8 @@ public final class Parcel { @Override protected void finalize() throws Throwable { if (DEBUG_RECYCLE) { - if (mStack != null) { + // we could always have this log on, but it's spammy + if (!mRecycled) { Log.w(TAG, "Client did not call Parcel.recycle()", mStack); } } diff --git a/core/java/android/os/ZygoteProcess.java b/core/java/android/os/ZygoteProcess.java index bf2898137967..3cb5c60259eb 100644 --- a/core/java/android/os/ZygoteProcess.java +++ b/core/java/android/os/ZygoteProcess.java @@ -82,13 +82,6 @@ public class ZygoteProcess { private static final String LOG_TAG = "ZygoteProcess"; /** - * The default value for enabling the unspecialized app process (USAP) pool. This value will - * not be used if the devices has a DeviceConfig profile pushed to it that contains a value for - * this key. - */ - private static final String USAP_POOL_ENABLED_DEFAULT = "false"; - - /** * The name of the socket used to communicate with the primary zygote. */ private final LocalSocketAddress mZygoteSocketAddress; @@ -793,14 +786,8 @@ public class ZygoteProcess { private boolean fetchUsapPoolEnabledProp() { boolean origVal = mUsapPoolEnabled; - final String propertyString = Zygote.getConfigurationProperty( - ZygoteConfig.USAP_POOL_ENABLED, USAP_POOL_ENABLED_DEFAULT); - - if (!propertyString.isEmpty()) { - mUsapPoolEnabled = Zygote.getConfigurationPropertyBoolean( - ZygoteConfig.USAP_POOL_ENABLED, - Boolean.parseBoolean(USAP_POOL_ENABLED_DEFAULT)); - } + mUsapPoolEnabled = ZygoteConfig.getBool( + ZygoteConfig.USAP_POOL_ENABLED, ZygoteConfig.USAP_POOL_ENABLED_DEFAULT); boolean valueChanged = origVal != mUsapPoolEnabled; diff --git a/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java b/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java index 024660bde6fe..a59f026c4182 100644 --- a/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java +++ b/core/java/android/service/quickaccesswallet/QuickAccessWalletClientImpl.java @@ -45,9 +45,9 @@ import android.util.Log; import com.android.internal.widget.LockPatternUtils; import java.io.IOException; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.HashMap; -import java.util.LinkedList; import java.util.Map; import java.util.Queue; import java.util.UUID; @@ -85,7 +85,7 @@ public class QuickAccessWalletClientImpl implements QuickAccessWalletClient, Ser mServiceInfo = QuickAccessWalletServiceInfo.tryCreate(context); mHandler = new Handler(Looper.getMainLooper()); mLifecycleExecutor = (bgExecutor == null) ? Runnable::run : bgExecutor; - mRequestQueue = new LinkedList<>(); + mRequestQueue = new ArrayDeque<>(); mEventListeners = new HashMap<>(1); } diff --git a/core/java/android/view/HandwritingInitiator.java b/core/java/android/view/HandwritingInitiator.java index 7f8f50b7768e..14691b3cc5d8 100644 --- a/core/java/android/view/HandwritingInitiator.java +++ b/core/java/android/view/HandwritingInitiator.java @@ -60,7 +60,7 @@ public class HandwritingInitiator { */ private final long mHandwritingTimeoutInMillis; - private final State mState = new State(); + private State mState; private final HandwritingAreaTracker mHandwritingAreasTracker = new HandwritingAreaTracker(); /** The reference to the View that currently has the input connection. */ @@ -86,17 +86,27 @@ public class HandwritingInitiator { /** * Notify the HandwritingInitiator that a new MotionEvent has arrived. - * This method is non-block, and the event passed to this method should be dispatched to the - * View tree as usual. If HandwritingInitiator triggers the handwriting mode, an fabricated - * ACTION_CANCEL event will be sent to the ViewRootImpl. - * @param motionEvent the stylus MotionEvent. + * + * <p>The return value indicates whether the event has been fully handled by the + * HandwritingInitiator and should not be dispatched to the view tree. This will be true for + * ACTION_MOVE events from a stylus gesture after handwriting mode has been initiated, in order + * to suppress other actions such as scrolling. + * + * <p>If HandwritingInitiator triggers the handwriting mode, a fabricated ACTION_CANCEL event + * will be sent to the ViewRootImpl. + * + * @param motionEvent the stylus {@link MotionEvent} + * @return true if the event has been fully handled by the {@link HandwritingInitiator} and + * should not be dispatched to the {@link View} tree, or false if the event should be dispatched + * to the {@link View} tree as usual */ @VisibleForTesting - public void onTouchEvent(@NonNull MotionEvent motionEvent) { + public boolean onTouchEvent(@NonNull MotionEvent motionEvent) { final int maskedAction = motionEvent.getActionMasked(); switch (maskedAction) { case MotionEvent.ACTION_DOWN: case MotionEvent.ACTION_POINTER_DOWN: + mState = null; final int actionIndex = motionEvent.getActionIndex(); final int toolType = motionEvent.getToolType(actionIndex); // TOOL_TYPE_ERASER is also from stylus. This indicates that the user is holding @@ -104,42 +114,44 @@ public class HandwritingInitiator { if (toolType != MotionEvent.TOOL_TYPE_STYLUS && toolType != MotionEvent.TOOL_TYPE_ERASER) { // The motion event is not from a stylus event, ignore it. - return; + return false; + } + if (!mImm.isStylusHandwritingAvailable()) { + return false; } - mState.mStylusPointerId = motionEvent.getPointerId(actionIndex); - mState.mStylusDownTimeInMillis = motionEvent.getEventTime(); - mState.mStylusDownX = motionEvent.getX(actionIndex); - mState.mStylusDownY = motionEvent.getY(actionIndex); - mState.mStylusDownCandidateView = new WeakReference<>( - findBestCandidateView(mState.mStylusDownX, mState.mStylusDownY)); - mState.mShouldInitHandwriting = true; - mState.mExceedHandwritingSlop = false; + mState = new State(motionEvent); break; case MotionEvent.ACTION_POINTER_UP: final int pointerId = motionEvent.getPointerId(motionEvent.getActionIndex()); - if (pointerId != mState.mStylusPointerId) { + if (mState == null || pointerId != mState.mStylusPointerId) { // ACTION_POINTER_UP is from another stylus pointer, ignore the event. - return; + return false; } // Deliberately fall through. case MotionEvent.ACTION_CANCEL: case MotionEvent.ACTION_UP: // If it's ACTION_CANCEL or ACTION_UP, all the pointers go up. There is no need to // check whether the stylus we are tracking goes up. - mState.mShouldInitHandwriting = false; - break; + if (mState != null) { + mState.mShouldInitHandwriting = false; + } + return false; case MotionEvent.ACTION_MOVE: + if (mState == null) { + return false; + } + // Either we've already tried to initiate handwriting, or the ongoing MotionEvent // sequence is considered to be tap, long-click or other gestures. if (!mState.mShouldInitHandwriting || mState.mExceedHandwritingSlop) { - return; + return mState.mHasInitiatedHandwriting; } final long timeElapsed = motionEvent.getEventTime() - mState.mStylusDownTimeInMillis; if (timeElapsed > mHandwritingTimeoutInMillis) { mState.mShouldInitHandwriting = false; - return; + return mState.mHasInitiatedHandwriting; } final int pointerIndex = motionEvent.findPointerIndex(mState.mStylusPointerId); @@ -147,13 +159,8 @@ public class HandwritingInitiator { final float y = motionEvent.getY(pointerIndex); if (largerThanTouchSlop(x, y, mState.mStylusDownX, mState.mStylusDownY)) { mState.mExceedHandwritingSlop = true; - View candidateView = mState.mStylusDownCandidateView.get(); - if (candidateView == null || !candidateView.isAttachedToWindow()) { - // If there was no candidate view found in the stylus down event, or if that - // candidate view is no longer attached, search again for a candidate view. - candidateView = findBestCandidateView(mState.mStylusDownX, - mState.mStylusDownY); - } + View candidateView = + findBestCandidateView(mState.mStylusDownX, mState.mStylusDownY); if (candidateView != null) { if (candidateView == getConnectedView()) { startHandwriting(candidateView); @@ -162,7 +169,9 @@ public class HandwritingInitiator { } } } + return mState.mHasInitiatedHandwriting; } + return false; } @Nullable @@ -195,7 +204,7 @@ public class HandwritingInitiator { } else { mConnectedView = new WeakReference<>(view); mConnectionCount = 1; - if (mState.mShouldInitHandwriting) { + if (mState != null && mState.mShouldInitHandwriting) { tryStartHandwriting(); } } @@ -259,6 +268,7 @@ public class HandwritingInitiator { @VisibleForTesting public void startHandwriting(@NonNull View view) { mImm.startStylusHandwriting(view); + mState.mHasInitiatedHandwriting = true; mState.mShouldInitHandwriting = false; } @@ -438,28 +448,38 @@ public class HandwritingInitiator { * b) If the MotionEvent sequence is considered to be tap, long-click or other gestures. * This boolean will be set to false, and it won't request to start handwriting. */ - private boolean mShouldInitHandwriting = false; + private boolean mShouldInitHandwriting; + /** + * Whether handwriting mode has already been initiated for the current MotionEvent sequence. + */ + private boolean mHasInitiatedHandwriting; /** * Whether the current ongoing stylus MotionEvent sequence already exceeds the * handwriting slop. * It's used for the case where the stylus exceeds handwriting slop before the target View * built InputConnection. */ - private boolean mExceedHandwritingSlop = false; + private boolean mExceedHandwritingSlop; /** The pointer id of the stylus pointer that is being tracked. */ - private int mStylusPointerId = -1; + private final int mStylusPointerId; /** The time stamp when the stylus pointer goes down. */ - private long mStylusDownTimeInMillis = -1; + private final long mStylusDownTimeInMillis; /** The initial location where the stylus pointer goes down. */ - private float mStylusDownX = Float.NaN; - private float mStylusDownY = Float.NaN; - /** - * The best candidate view to initialize handwriting mode based on the initial location - * where the stylus pointer goes down, or null if the location was not within any candidate - * view's handwriting area. - */ - private WeakReference<View> mStylusDownCandidateView = new WeakReference<>(null); + private final float mStylusDownX; + private final float mStylusDownY; + + private State(MotionEvent motionEvent) { + final int actionIndex = motionEvent.getActionIndex(); + mStylusPointerId = motionEvent.getPointerId(actionIndex); + mStylusDownTimeInMillis = motionEvent.getEventTime(); + mStylusDownX = motionEvent.getX(actionIndex); + mStylusDownY = motionEvent.getY(actionIndex); + + mShouldInitHandwriting = true; + mHasInitiatedHandwriting = false; + mExceedHandwritingSlop = false; + } } /** The helper method to check if the given view is still active for handwriting. */ diff --git a/core/java/android/view/IWindowSession.aidl b/core/java/android/view/IWindowSession.aidl index 649accd1126d..8954a1eaf146 100644 --- a/core/java/android/view/IWindowSession.aidl +++ b/core/java/android/view/IWindowSession.aidl @@ -384,4 +384,9 @@ interface IWindowSession { * Clears a touchable region set by {@link #setInsets}. */ void clearTouchableRegion(IWindow window); + + /** + * Returns whether this window needs to cancel draw and retry later. + */ + boolean cancelDraw(IWindow window); } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index 0b742e7f2eff..9d671136c6fe 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -84,6 +84,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_STATUS_BAR_ADDITIONAL import static android.view.WindowManager.LayoutParams.TYPE_SYSTEM_ALERT; import static android.view.WindowManager.LayoutParams.TYPE_TOAST; import static android.view.WindowManager.LayoutParams.TYPE_VOLUME_OVERLAY; +import static android.view.WindowManagerGlobal.RELAYOUT_RES_CANCEL_AND_REDRAW; import static android.view.WindowManagerGlobal.RELAYOUT_RES_CONSUME_ALWAYS_SYSTEM_BARS; import static android.view.WindowManagerGlobal.RELAYOUT_RES_SURFACE_CHANGED; import static android.view.inputmethod.InputMethodEditorTraceProto.InputMethodClientsTraceProto.ClientSideProto.IME_FOCUS_CONTROLLER; @@ -601,6 +602,14 @@ public final class ViewRootImpl implements ViewParent, */ private boolean mSyncBuffer = false; + /** + * Flag to determine whether the client needs to check with WMS if it can draw. WMS will notify + * the client that it can't draw if we're still in the middle of a sync set that includes this + * window. Once the sync is complete, the window can resume drawing. This is to ensure we don't + * deadlock the client by trying to request draws when there may not be any buffers available. + */ + private boolean mCheckIfCanDraw = false; + int mSyncSeqId = 0; int mLastSyncSeqId = 0; @@ -2703,6 +2712,9 @@ public final class ViewRootImpl implements ViewParent, mIsInTraversal = true; mWillDrawSoon = true; + boolean cancelDraw = false; + boolean isSyncRequest = false; + boolean windowSizeMayChange = false; WindowManager.LayoutParams lp = mWindowAttributes; @@ -2972,6 +2984,8 @@ public final class ViewRootImpl implements ViewParent, mViewFrameInfo.flags |= FrameInfo.FLAG_WINDOW_VISIBILITY_CHANGED; } relayoutResult = relayoutWindow(params, viewVisibility, insetsPending); + cancelDraw = (relayoutResult & RELAYOUT_RES_CANCEL_AND_REDRAW) + == RELAYOUT_RES_CANCEL_AND_REDRAW; final boolean dragResizing = mPendingDragResizing; if (mSyncSeqId > mLastSyncSeqId) { mLastSyncSeqId = mSyncSeqId; @@ -2980,6 +2994,7 @@ public final class ViewRootImpl implements ViewParent, } reportNextDraw(); mSyncBuffer = true; + isSyncRequest = true; } final boolean surfaceControlChanged = @@ -3268,6 +3283,19 @@ public final class ViewRootImpl implements ViewParent, } } } else { + // If a relayout isn't going to happen, we still need to check if this window can draw + // when mCheckIfCanDraw is set. This is because it means we had a sync in the past, but + // have not been told by WMS that the sync is complete and that we can continue to draw + if (mCheckIfCanDraw) { + try { + cancelDraw = mWindowSession.cancelDraw(mWindow); + if (DEBUG_BLAST) { + Log.d(mTag, "cancelDraw returned " + cancelDraw); + } + } catch (RemoteException e) { + } + } + // Not the first pass and no window/insets/visibility change but the window // may have moved and we need check that and if so to update the left and right // in the attach info. We translate only the window frame since on window move @@ -3486,7 +3514,9 @@ public final class ViewRootImpl implements ViewParent, reportNextDraw(); } - boolean cancelAndRedraw = mAttachInfo.mTreeObserver.dispatchOnPreDraw(); + mCheckIfCanDraw = isSyncRequest || cancelDraw; + + boolean cancelAndRedraw = mAttachInfo.mTreeObserver.dispatchOnPreDraw() || cancelDraw; if (!cancelAndRedraw) { createSyncIfNeeded(); } @@ -6554,11 +6584,13 @@ public final class ViewRootImpl implements ViewParent, private int processPointerEvent(QueuedInputEvent q) { final MotionEvent event = (MotionEvent)q.mEvent; - mHandwritingInitiator.onTouchEvent(event); + boolean handled = mHandwritingInitiator.onTouchEvent(event); mAttachInfo.mUnbufferedDispatchRequested = false; mAttachInfo.mHandlingPointerEvent = true; - boolean handled = mView.dispatchPointerEvent(event); + // If the event was fully handled by the handwriting initiator, then don't dispatch it + // to the view tree. + handled = handled || mView.dispatchPointerEvent(event); maybeUpdatePointerIcon(event); maybeUpdateTooltip(event); mAttachInfo.mHandlingPointerEvent = false; diff --git a/core/java/android/view/WindowManager.java b/core/java/android/view/WindowManager.java index 792eedec388e..13ea7af7a623 100644 --- a/core/java/android/view/WindowManager.java +++ b/core/java/android/view/WindowManager.java @@ -2598,6 +2598,7 @@ public interface WindowManager extends ViewManager { PRIVATE_FLAG_SYSTEM_ERROR, PRIVATE_FLAG_DISABLE_WALLPAPER_TOUCH_EVENTS, PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR, + PRIVATE_FLAG_LAYOUT_SIZE_EXTENDED_BY_CUTOUT, PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY, PRIVATE_FLAG_WILL_NOT_REPLACE_ON_RELAUNCH, PRIVATE_FLAG_LAYOUT_CHILD_WINDOW_IN_PARENT_FRAME, @@ -2659,6 +2660,10 @@ public interface WindowManager extends ViewManager { equals = PRIVATE_FLAG_FORCE_SHOW_STATUS_BAR, name = "FORCE_STATUS_BAR_VISIBLE"), @ViewDebug.FlagToString( + mask = PRIVATE_FLAG_LAYOUT_SIZE_EXTENDED_BY_CUTOUT, + equals = PRIVATE_FLAG_LAYOUT_SIZE_EXTENDED_BY_CUTOUT, + name = "LAYOUT_SIZE_EXTENDED_BY_CUTOUT"), + @ViewDebug.FlagToString( mask = PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY, equals = PRIVATE_FLAG_FORCE_DECOR_VIEW_VISIBILITY, name = "FORCE_DECOR_VIEW_VISIBILITY"), diff --git a/core/java/android/view/WindowManagerGlobal.java b/core/java/android/view/WindowManagerGlobal.java index 85a5762f7f3d..25445abefca2 100644 --- a/core/java/android/view/WindowManagerGlobal.java +++ b/core/java/android/view/WindowManagerGlobal.java @@ -83,6 +83,11 @@ public final class WindowManagerGlobal { public static final int RELAYOUT_RES_CONSUME_ALWAYS_SYSTEM_BARS = 1 << 3; /** + * The window manager has told the window it cannot draw this frame and should retry again. + */ + public static final int RELAYOUT_RES_CANCEL_AND_REDRAW = 1 << 4; + + /** * Flag for relayout: the client will be later giving * internal insets; as a result, the window will not impact other window * layouts until the insets are given. diff --git a/core/java/android/view/WindowlessWindowManager.java b/core/java/android/view/WindowlessWindowManager.java index a212348a2315..5832347c1947 100644 --- a/core/java/android/view/WindowlessWindowManager.java +++ b/core/java/android/view/WindowlessWindowManager.java @@ -552,4 +552,9 @@ public class WindowlessWindowManager implements IWindowSession { } } } + + @Override + public boolean cancelDraw(IWindow window) { + return false; + } } diff --git a/core/java/android/view/inputmethod/InputMethodManager.java b/core/java/android/view/inputmethod/InputMethodManager.java index 73d6241c21d1..bcc56514edfb 100644 --- a/core/java/android/view/inputmethod/InputMethodManager.java +++ b/core/java/android/view/inputmethod/InputMethodManager.java @@ -1131,9 +1131,7 @@ public final class InputMethodManager { || mServedInputConnection == null) { return; } - final boolean isMonitoring = (mRequestUpdateCursorAnchorInfoMonitorMode - & InputConnection.CURSOR_UPDATE_MONITOR) != 0; - if (!isMonitoring) { + if (!mServedInputConnection.isCursorAnchorInfoMonitoring()) { return; } // Since the host VirtualDisplay is moved, we need to issue @@ -2675,19 +2673,14 @@ public final class InputMethodManager { if (DEBUG) { Log.v(TAG, "SELECTION CHANGE: " + mCurrentInputMethodSession); } - final int oldSelStart = mCursorSelStart; - final int oldSelEnd = mCursorSelEnd; - // Update internal values before sending updateSelection to the IME, because - // if it changes the text within its onUpdateSelection handler in a way that - // does not move the cursor we don't want to call it again with the same values. + mCurrentInputMethodSession.updateSelection(mCursorSelStart, mCursorSelEnd, selStart, + selEnd, candidatesStart, candidatesEnd); + forAccessibilitySessionsLocked(wrapper -> wrapper.updateSelection(mCursorSelStart, + mCursorSelEnd, selStart, selEnd, candidatesStart, candidatesEnd)); mCursorSelStart = selStart; mCursorSelEnd = selEnd; mCursorCandStart = candidatesStart; mCursorCandEnd = candidatesEnd; - mCurrentInputMethodSession.updateSelection( - oldSelStart, oldSelEnd, selStart, selEnd, candidatesStart, candidatesEnd); - forAccessibilitySessionsLocked(wrapper -> wrapper.updateSelection(oldSelStart, - oldSelEnd, selStart, selEnd, candidatesStart, candidatesEnd)); } } } @@ -2834,8 +2827,8 @@ public final class InputMethodManager { } // If immediate bit is set, we will call updateCursorAnchorInfo() even when the data has // not been changed from the previous call. - final boolean isImmediate = (mRequestUpdateCursorAnchorInfoMonitorMode & - CURSOR_UPDATE_IMMEDIATE) != 0; + final boolean isImmediate = mServedInputConnection != null + && mServedInputConnection.resetHasPendingImmediateCursorAnchorInfoUpdate(); if (!isImmediate && Objects.equals(mCursorAnchorInfo, cursorAnchorInfo)) { // TODO: Consider always emitting this message once we have addressed redundant // calls of this method from android.widget.Editor. @@ -2854,8 +2847,6 @@ public final class InputMethodManager { mCurrentInputMethodSession.updateCursorAnchorInfo(cursorAnchorInfo); } mCursorAnchorInfo = cursorAnchorInfo; - // Clear immediate bit (if any). - mRequestUpdateCursorAnchorInfoMonitorMode &= ~CURSOR_UPDATE_IMMEDIATE; } } diff --git a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java index 874e3f4ae26a..50afb3ee0a03 100644 --- a/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java +++ b/core/java/com/android/internal/accessibility/dialog/AccessibilityShortcutChooserActivity.java @@ -28,6 +28,7 @@ import static com.android.internal.accessibility.util.AccessibilityUtils.isUserS import android.annotation.Nullable; import android.app.Activity; import android.app.AlertDialog; +import android.content.Context; import android.content.DialogInterface; import android.content.res.TypedArray; import android.os.Bundle; @@ -102,16 +103,7 @@ public class AccessibilityShortcutChooserActivity extends Activity { final AccessibilityTarget target = mTargets.get(position); if ((target instanceof AccessibilityServiceTarget) && !target.isShortcutEnabled()) { - mPermissionDialog = new AlertDialog.Builder(this) - .setView(createEnableDialogContentView(this, - (AccessibilityServiceTarget) target, - v -> { - mPermissionDialog.dismiss(); - mTargetAdapter.notifyDataSetChanged(); - }, - v -> mPermissionDialog.dismiss())) - .create(); - mPermissionDialog.show(); + showPermissionDialogIfNeeded(this, (AccessibilityServiceTarget) target, mTargetAdapter); return; } @@ -119,6 +111,24 @@ public class AccessibilityShortcutChooserActivity extends Activity { mTargetAdapter.notifyDataSetChanged(); } + private void showPermissionDialogIfNeeded(Context context, + AccessibilityServiceTarget serviceTarget, ShortcutTargetAdapter targetAdapter) { + if (mPermissionDialog != null) { + return; + } + + mPermissionDialog = new AlertDialog.Builder(context) + .setView(createEnableDialogContentView(context, serviceTarget, + v -> { + mPermissionDialog.dismiss(); + targetAdapter.notifyDataSetChanged(); + }, + v -> mPermissionDialog.dismiss())) + .setOnDismissListener(dialog -> mPermissionDialog = null) + .create(); + mPermissionDialog.show(); + } + private void onDoneButtonClicked() { mTargets.clear(); mTargets.addAll(getTargets(this, mShortcutType)); diff --git a/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java b/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java index cb18ccc9788a..2bef10f1aee5 100644 --- a/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java +++ b/core/java/com/android/internal/inputmethod/RemoteInputConnectionImpl.java @@ -176,6 +176,10 @@ public final class RemoteInputConnectionImpl extends IRemoteInputConnection.Stub private final AtomicInteger mCurrentSessionId = new AtomicInteger(0); private final AtomicBoolean mHasPendingInvalidation = new AtomicBoolean(); + private final AtomicBoolean mIsCursorAnchorInfoMonitoring = new AtomicBoolean(false); + private final AtomicBoolean mHasPendingImmediateCursorAnchorInfoUpdate = + new AtomicBoolean(false); + public RemoteInputConnectionImpl(@NonNull Looper looper, @NonNull InputConnection inputConnection, @NonNull InputMethodManager inputMethodManager, @Nullable View servedView) { @@ -223,6 +227,33 @@ public final class RemoteInputConnectionImpl extends IRemoteInputConnection.Stub } /** + * Gets and resets {@link #mHasPendingImmediateCursorAnchorInfoUpdate}. + * + * <p>Calling this method resets {@link #mHasPendingImmediateCursorAnchorInfoUpdate}. This + * means that the second call of this method returns {@code false} unless the IME requests + * {@link android.view.inputmethod.CursorAnchorInfo} again with + * {@link InputConnection#CURSOR_UPDATE_IMMEDIATE} flag.</p> + * + * @return {@code true} if there is any pending request for + * {@link android.view.inputmethod.CursorAnchorInfo} with + * {@link InputConnection#CURSOR_UPDATE_IMMEDIATE} flag. + */ + @AnyThread + public boolean resetHasPendingImmediateCursorAnchorInfoUpdate() { + return mHasPendingImmediateCursorAnchorInfoUpdate.getAndSet(false); + } + + /** + * @return {@code true} if there is any active request for + * {@link android.view.inputmethod.CursorAnchorInfo} with + * {@link InputConnection#CURSOR_UPDATE_MONITOR} flag. + */ + @AnyThread + public boolean isCursorAnchorInfoMonitoring() { + return mIsCursorAnchorInfoMonitoring.get(); + } + + /** * Schedule a task to execute * {@link InputMethodManager#doInvalidateInput(RemoteInputConnectionImpl, TextSnapshot, int)} * on the associated Handler if not yet scheduled. @@ -998,11 +1029,20 @@ public final class RemoteInputConnectionImpl extends IRemoteInputConnection.Stub // requestCursorUpdates() is not currently supported across displays. return false; } + final boolean hasImmediate = + (cursorUpdateMode & InputConnection.CURSOR_UPDATE_IMMEDIATE) != 0; + final boolean hasMonitoring = + (cursorUpdateMode & InputConnection.CURSOR_UPDATE_MONITOR) != 0; + boolean result = false; try { - return ic.requestCursorUpdates(cursorUpdateMode, cursorUpdateFilter); + result = ic.requestCursorUpdates(cursorUpdateMode, cursorUpdateFilter); + return result; } catch (AbstractMethodError ignored) { // TODO(b/199934664): See if we can remove this by providing a default impl. return false; + } finally { + mHasPendingImmediateCursorAnchorInfoUpdate.set(result && hasImmediate); + mIsCursorAnchorInfoMonitoring.set(result && hasMonitoring); } } diff --git a/core/java/com/android/internal/os/TEST_MAPPING b/core/java/com/android/internal/os/TEST_MAPPING index 5a5165ddd7e2..60b160ad18c2 100644 --- a/core/java/com/android/internal/os/TEST_MAPPING +++ b/core/java/com/android/internal/os/TEST_MAPPING @@ -39,8 +39,7 @@ "name": "FrameworksServicesTests", "options": [ { "include-filter": "com.android.server.am.BatteryStatsServiceTest" }, - { "include-filter": "com.android.server.am.MeasuredEnergySnapshotTest" }, - { "include-filter": "com.android.server.am.BatteryExternalStatsWorkerTest" } + { "include-filter": "com.android.server.power.stats.BatteryStatsTests" } ] }, { @@ -75,13 +74,11 @@ "name": "FrameworksCoreTests", "options": [ { - "include-filter": "com.android.internal.os.BstatsCpuTimesValidationTest" + "include-filter": "com.android.server.power.stats.BstatsCpuTimesValidationTest" } ], "file_patterns": [ - "BatteryStatsImpl\\.java", - "KernelCpuUidFreqTimeReader\\.java", - "KernelSingleUidTimeReader\\.java" + "Kernel[^/]*\\.java" ] } ] diff --git a/core/java/com/android/internal/os/ZygoteConfig.java b/core/java/com/android/internal/os/ZygoteConfig.java index 6ebcae182b11..e5dc874d1f90 100644 --- a/core/java/com/android/internal/os/ZygoteConfig.java +++ b/core/java/com/android/internal/os/ZygoteConfig.java @@ -16,6 +16,9 @@ package com.android.internal.os; +import android.os.SystemProperties; +import android.provider.DeviceConfig; + /** * Flag names for configuring the zygote. * @@ -26,15 +29,87 @@ public class ZygoteConfig { /** If {@code true}, enables the unspecialized app process (USAP) pool feature */ public static final String USAP_POOL_ENABLED = "usap_pool_enabled"; + /** + * The default value for enabling the unspecialized app process (USAP) pool. This value will + * not be used if the devices has a DeviceConfig profile pushed to it that contains a value for + * this key or if the System Property dalvik.vm.usap_pool_enabled is set. + */ + public static final boolean USAP_POOL_ENABLED_DEFAULT = false; + + + /** The threshold used to determine if the pool should be refilled */ public static final String USAP_POOL_REFILL_THRESHOLD = "usap_refill_threshold"; + public static final int USAP_POOL_REFILL_THRESHOLD_DEFAULT = 1; + + + /** The maximum number of processes to keep in the USAP pool */ public static final String USAP_POOL_SIZE_MAX = "usap_pool_size_max"; + public static final int USAP_POOL_SIZE_MAX_DEFAULT = 3; + + /** + * The maximim value that will be accepted from the USAP_POOL_SIZE_MAX device property. + * is a mirror of USAP_POOL_MAX_LIMIT found in com_android_internal_os_Zygote.cpp. + */ + public static final int USAP_POOL_SIZE_MAX_LIMIT = 100; + + + /** The minimum number of processes to keep in the USAP pool */ public static final String USAP_POOL_SIZE_MIN = "usap_pool_size_min"; + public static final int USAP_POOL_SIZE_MIN_DEFAULT = 1; + + /** + * The minimum value that will be accepted from the USAP_POOL_SIZE_MIN device property. + */ + public static final int USAP_POOL_SIZE_MIN_LIMIT = 1; + + + /** The number of milliseconds to delay before refilling the USAP pool */ public static final String USAP_POOL_REFILL_DELAY_MS = "usap_pool_refill_delay_ms"; + + public static final int USAP_POOL_REFILL_DELAY_MS_DEFAULT = 3000; + + public static final String PROPERTY_PREFIX_DEVICE_CONFIG = "persist.device_config"; + public static final String PROPERTY_PREFIX_SYSTEM = "dalvik.vm."; + + private static String getDeviceConfig(String name) { + return SystemProperties.get( + String.join( + ".", + PROPERTY_PREFIX_DEVICE_CONFIG, + DeviceConfig.NAMESPACE_RUNTIME_NATIVE, + name)); + } + + /** + * Get a property value from SystemProperties and convert it to an integer value. + */ + public static int getInt(String name, int defaultValue) { + final String propString = getDeviceConfig(name); + + if (!propString.isEmpty()) { + return Integer.parseInt(propString); + } else { + return SystemProperties.getInt(PROPERTY_PREFIX_SYSTEM + name, defaultValue); + } + } + + /** + * Get a property value from SystemProperties and convert it to a Boolean value. + */ + public static boolean getBool(String name, boolean defaultValue) { + final String propString = getDeviceConfig(name); + + if (!propString.isEmpty()) { + return Boolean.parseBoolean(propString); + } else { + return SystemProperties.getBoolean(PROPERTY_PREFIX_SYSTEM + name, defaultValue); + } + } } diff --git a/core/java/com/android/internal/os/ZygoteServer.java b/core/java/com/android/internal/os/ZygoteServer.java index 4d2266b2eba5..f8598f2f471a 100644 --- a/core/java/com/android/internal/os/ZygoteServer.java +++ b/core/java/com/android/internal/os/ZygoteServer.java @@ -49,26 +49,6 @@ class ZygoteServer { // TODO (chriswailes): Change this so it is set with Zygote or ZygoteSecondary as appropriate public static final String TAG = "ZygoteServer"; - /** - * The maximim value that will be accepted from the USAP_POOL_SIZE_MAX device property. - * is a mirror of USAP_POOL_MAX_LIMIT found in com_android_internal_os_Zygote.cpp. - */ - private static final int USAP_POOL_SIZE_MAX_LIMIT = 100; - - /** - * The minimum value that will be accepted from the USAP_POOL_SIZE_MIN device property. - */ - private static final int USAP_POOL_SIZE_MIN_LIMIT = 1; - - /** The default value used for the USAP_POOL_SIZE_MAX device property */ - private static final String USAP_POOL_SIZE_MAX_DEFAULT = "10"; - - /** The default value used for the USAP_POOL_SIZE_MIN device property */ - private static final String USAP_POOL_SIZE_MIN_DEFAULT = "1"; - - /** The default value used for the USAP_REFILL_DELAY_MS device property */ - private static final String USAP_POOL_REFILL_DELAY_MS_DEFAULT = "3000"; - /** The "not a timestamp" value for the refill delay timestamp mechanism. */ private static final int INVALID_TIMESTAMP = -1; @@ -264,46 +244,35 @@ class ZygoteServer { private void fetchUsapPoolPolicyProps() { if (mUsapPoolSupported) { - final String usapPoolSizeMaxPropString = Zygote.getConfigurationProperty( - ZygoteConfig.USAP_POOL_SIZE_MAX, USAP_POOL_SIZE_MAX_DEFAULT); - - if (!usapPoolSizeMaxPropString.isEmpty()) { - mUsapPoolSizeMax = Integer.min(Integer.parseInt( - usapPoolSizeMaxPropString), USAP_POOL_SIZE_MAX_LIMIT); - } - - final String usapPoolSizeMinPropString = Zygote.getConfigurationProperty( - ZygoteConfig.USAP_POOL_SIZE_MIN, USAP_POOL_SIZE_MIN_DEFAULT); - - if (!usapPoolSizeMinPropString.isEmpty()) { - mUsapPoolSizeMin = Integer.max( - Integer.parseInt(usapPoolSizeMinPropString), USAP_POOL_SIZE_MIN_LIMIT); - } - - final String usapPoolRefillThresholdPropString = Zygote.getConfigurationProperty( + mUsapPoolSizeMax = Integer.min( + ZygoteConfig.getInt( + ZygoteConfig.USAP_POOL_SIZE_MAX, + ZygoteConfig.USAP_POOL_SIZE_MAX_DEFAULT), + ZygoteConfig.USAP_POOL_SIZE_MAX_LIMIT); + + mUsapPoolSizeMin = Integer.max( + ZygoteConfig.getInt( + ZygoteConfig.USAP_POOL_SIZE_MIN, + ZygoteConfig.USAP_POOL_SIZE_MIN_DEFAULT), + ZygoteConfig.USAP_POOL_SIZE_MIN_LIMIT); + + mUsapPoolRefillThreshold = Integer.min( + ZygoteConfig.getInt( ZygoteConfig.USAP_POOL_REFILL_THRESHOLD, - Integer.toString(mUsapPoolSizeMax / 2)); + ZygoteConfig.USAP_POOL_REFILL_THRESHOLD_DEFAULT), + mUsapPoolSizeMax); - if (!usapPoolRefillThresholdPropString.isEmpty()) { - mUsapPoolRefillThreshold = Integer.min( - Integer.parseInt(usapPoolRefillThresholdPropString), - mUsapPoolSizeMax); - } - - final String usapPoolRefillDelayMsPropString = Zygote.getConfigurationProperty( - ZygoteConfig.USAP_POOL_REFILL_DELAY_MS, USAP_POOL_REFILL_DELAY_MS_DEFAULT); - - if (!usapPoolRefillDelayMsPropString.isEmpty()) { - mUsapPoolRefillDelayMs = Integer.parseInt(usapPoolRefillDelayMsPropString); - } + mUsapPoolRefillDelayMs = ZygoteConfig.getInt( + ZygoteConfig.USAP_POOL_REFILL_DELAY_MS, + ZygoteConfig.USAP_POOL_REFILL_DELAY_MS_DEFAULT); // Validity check if (mUsapPoolSizeMin >= mUsapPoolSizeMax) { Log.w(TAG, "The max size of the USAP pool must be greater than the minimum size." + " Restoring default values."); - mUsapPoolSizeMax = Integer.parseInt(USAP_POOL_SIZE_MAX_DEFAULT); - mUsapPoolSizeMin = Integer.parseInt(USAP_POOL_SIZE_MIN_DEFAULT); + mUsapPoolSizeMax = ZygoteConfig.USAP_POOL_SIZE_MAX_DEFAULT; + mUsapPoolSizeMin = ZygoteConfig.USAP_POOL_SIZE_MIN_DEFAULT; mUsapPoolRefillThreshold = mUsapPoolSizeMax / 2; } } diff --git a/core/java/com/android/internal/power/TEST_MAPPING b/core/java/com/android/internal/power/TEST_MAPPING index 96f31bcbe5b2..c6cab183d970 100644 --- a/core/java/com/android/internal/power/TEST_MAPPING +++ b/core/java/com/android/internal/power/TEST_MAPPING @@ -11,8 +11,7 @@ "name": "FrameworksServicesTests", "options": [ { "include-filter": "com.android.server.am.BatteryStatsServiceTest" }, - { "include-filter": "com.android.server.am.MeasuredEnergySnapshotTest" }, - { "include-filter": "com.android.server.am.BatteryExternalStatsWorkerTest" } + { "include-filter": "com.android.server.power.stats.BatteryStatsTests" } ] } ] diff --git a/core/java/com/android/internal/view/menu/ActionMenuItemView.java b/core/java/com/android/internal/view/menu/ActionMenuItemView.java index 61536e8960e2..409ab01bf74b 100644 --- a/core/java/com/android/internal/view/menu/ActionMenuItemView.java +++ b/core/java/com/android/internal/view/menu/ActionMenuItemView.java @@ -94,6 +94,11 @@ public class ActionMenuItemView extends TextView updateTextButtonVisibility(); } + @Override + public CharSequence getAccessibilityClassName() { + return android.widget.Button.class.getName(); + } + /** * Whether action menu items should obey the "withText" showAsAction flag. This may be set to * false for situations where space is extremely limited. --> diff --git a/core/jni/com_android_internal_os_Zygote.cpp b/core/jni/com_android_internal_os_Zygote.cpp index 34fd478baeda..5cb0de324106 100644 --- a/core/jni/com_android_internal_os_Zygote.cpp +++ b/core/jni/com_android_internal_os_Zygote.cpp @@ -94,6 +94,10 @@ #include "nativebridge/native_bridge.h" +#if defined(__BIONIC__) +extern "C" void android_reset_stack_guards(); +#endif + namespace { // TODO (chriswailes): Add a function to initialize native Zygote data. @@ -412,6 +416,7 @@ static void sendSigChildStatus(const pid_t pid, const uid_t uid, const int statu } // This signal handler is for zygote mode, since the zygote must reap its children +NO_STACK_PROTECTOR static void SigChldHandler(int /*signal_number*/, siginfo_t* info, void* /*ucontext*/) { pid_t pid; int status; @@ -2042,6 +2047,7 @@ static std::set<int>* gPreloadFds = nullptr; static bool gPreloadFdsExtracted = false; // Utility routine to fork a process from the zygote. +NO_STACK_PROTECTOR pid_t zygote::ForkCommon(JNIEnv* env, bool is_system_server, const std::vector<int>& fds_to_close, const std::vector<int>& fds_to_ignore, @@ -2098,6 +2104,11 @@ pid_t zygote::ForkCommon(JNIEnv* env, bool is_system_server, setpriority(PRIO_PROCESS, 0, PROCESS_PRIORITY_MIN); } +#if defined(__BIONIC__) + // Reset the stack guard for the new process. + android_reset_stack_guards(); +#endif + // The child process. PreApplicationInit(); @@ -2130,6 +2141,7 @@ static void com_android_internal_os_Zygote_nativePreApplicationInit(JNIEnv*, jcl PreApplicationInit(); } +NO_STACK_PROTECTOR static jint com_android_internal_os_Zygote_nativeForkAndSpecialize( JNIEnv* env, jclass, jint uid, jint gid, jintArray gids, jint runtime_flags, jobjectArray rlimits, jint mount_external, jstring se_info, jstring nice_name, @@ -2184,6 +2196,7 @@ static jint com_android_internal_os_Zygote_nativeForkAndSpecialize( return pid; } +NO_STACK_PROTECTOR static jint com_android_internal_os_Zygote_nativeForkSystemServer( JNIEnv* env, jclass, uid_t uid, gid_t gid, jintArray gids, jint runtime_flags, jobjectArray rlimits, jlong permitted_capabilities, @@ -2255,6 +2268,7 @@ static jint com_android_internal_os_Zygote_nativeForkSystemServer( * @param is_priority_fork Controls the nice level assigned to the newly created process * @return child pid in the parent, 0 in the child */ +NO_STACK_PROTECTOR static jint com_android_internal_os_Zygote_nativeForkApp(JNIEnv* env, jclass, jint read_pipe_fd, @@ -2269,6 +2283,7 @@ static jint com_android_internal_os_Zygote_nativeForkApp(JNIEnv* env, args_known == JNI_TRUE, is_priority_fork == JNI_TRUE, true); } +NO_STACK_PROTECTOR int zygote::forkApp(JNIEnv* env, int read_pipe_fd, int write_pipe_fd, diff --git a/core/jni/com_android_internal_os_Zygote.h b/core/jni/com_android_internal_os_Zygote.h index b87396cbd5f5..15f53e0814e3 100644 --- a/core/jni/com_android_internal_os_Zygote.h +++ b/core/jni/com_android_internal_os_Zygote.h @@ -20,6 +20,14 @@ #define LOG_TAG "Zygote" #define ATRACE_TAG ATRACE_TAG_DALVIK +/* + * All functions that lead to ForkCommon must be marked with the + * no_stack_protector attributed. Because ForkCommon changes the stack + * protector cookie, all of the guard checks on the frames above ForkCommon + * would fail when they are popped. + */ +#define NO_STACK_PROTECTOR __attribute__((no_stack_protector)) + #include <jni.h> #include <vector> #include <android-base/stringprintf.h> diff --git a/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp b/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp index add645dee718..2b5b8f7a108e 100644 --- a/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp +++ b/core/jni/com_android_internal_os_ZygoteCommandBuffer.cpp @@ -377,6 +377,7 @@ void com_android_internal_os_ZygoteCommandBuffer_nativeReadFullyAndReset(JNIEnv* // We only process fork commands if the peer uid matches expected_uid. // For every fork command after the first, we check that the requested uid is at // least minUid. +NO_STACK_PROTECTOR jboolean com_android_internal_os_ZygoteCommandBuffer_nativeForkRepeatedly( JNIEnv* env, jclass, diff --git a/core/res/res/layout/notification_template_material_base.xml b/core/res/res/layout/notification_template_material_base.xml index 0756d68063f5..fd787f6ea470 100644 --- a/core/res/res/layout/notification_template_material_base.xml +++ b/core/res/res/layout/notification_template_material_base.xml @@ -138,7 +138,7 @@ </LinearLayout> - <ImageView + <com.android.internal.widget.CachingIconView android:id="@+id/right_icon" android:layout_width="@dimen/notification_right_icon_size" android:layout_height="@dimen/notification_right_icon_size" @@ -150,6 +150,8 @@ android:clipToOutline="true" android:importantForAccessibility="no" android:scaleType="centerCrop" + android:maxDrawableWidth="@dimen/notification_right_icon_size" + android:maxDrawableHeight="@dimen/notification_right_icon_size" /> <FrameLayout diff --git a/core/res/res/layout/notification_template_right_icon.xml b/core/res/res/layout/notification_template_right_icon.xml index f163ed5f955a..8b3b795f7473 100644 --- a/core/res/res/layout/notification_template_right_icon.xml +++ b/core/res/res/layout/notification_template_right_icon.xml @@ -13,7 +13,7 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License --> -<ImageView +<com.android.internal.widget.CachingIconView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/right_icon" android:layout_width="@dimen/notification_right_icon_size" @@ -25,4 +25,6 @@ android:clipToOutline="true" android:importantForAccessibility="no" android:scaleType="centerCrop" + android:maxDrawableWidth="@dimen/notification_right_icon_size" + android:maxDrawableHeight="@dimen/notification_right_icon_size" /> diff --git a/core/res/res/values-af/strings.xml b/core/res/res/values-af/strings.xml index e8244c4e7217..d1c38767680f 100644 --- a/core/res/res/values-af/strings.xml +++ b/core/res/res/values-af/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Titelloos>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Geen foonnommer)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Streekvoorkeur"</string> <string name="search_language_hint" msgid="7004225294308793583">"Voer taalnaam in"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Voorgestel"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Voorgestelde tale"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Voorgestelde streke"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Alle tale"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Allle streke"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Soek"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Kom meer te wete"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Verbeterde kennisgewings het Android se aanpasbare kennisgewings in Android 12 vervang. Hierdie kenmerk wys voorgestelde handelinge en antwoorde en organiseer jou kennisgewings.\n\nVerbeterde kennisgewings het toegang tot kennisgewinginhoud, insluitend persoonlike inligting soos kontakname en boodskappe. Hierdie kenmerk kan ook kennisgewings toemaak of daarop antwoord, soos om foonoproepe te beantwoord en Moenie Steur Nie te beheer."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Roetinemodus-inligtingkennisgewing"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Battery kan afloop voordat dit normaalweg gelaai word"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Batterybespaarder is geaktiveer om batterylewe te verleng"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Batterybespaarder is aangeskakel"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Verminder tans batterygebruik om batterylewe te verleng"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Batterybespaarder"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Batterybespaarder is afgeskakel"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Foon se battery het genoeg krag. Kenmerke is nie meer beperk nie."</string> diff --git a/core/res/res/values-am/strings.xml b/core/res/res/values-am/strings.xml index b15d564fee71..21751c8721be 100644 --- a/core/res/res/values-am/strings.xml +++ b/core/res/res/values-am/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"ባ"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"ኪባ"</string> - <string name="megabyteShort" msgid="6649361267635823443">"ሜባ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ጊባ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ቴባ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"ፔባ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ርዕስ አልባ>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ምንም ስልክ ቁጥር የለም)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"የክልል ምርጫ"</string> <string name="search_language_hint" msgid="7004225294308793583">"የቋንቋ ስም ይተይቡ"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"የተጠቆሙ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"በአስተያየት የተጠቆሙ ቋንቋዎች"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"በአስተያየት የተጠቆሙ ክልሎች"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ሁሉም ቋንቋዎች"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ሁሉም ክልሎች"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ፈልግ"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"የበለጠ ለመረዳት"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"የተሻሻሉ ማሳወቂያዎች በAndroid 12 ውስጥ Android ራስ-አስማሚ ማሳወቂያዎችን ተክተዋል። ይህ ባህሪ የተጠቆሙ እርምጃዎችን እና ምላሾችን ያሳያል እንዲሁም ማሳወቂያዎችዎን ያደራጃል።\n\nየተሻሻሉ ማሳወቂያዎች እንደ የእውቂያ ስሞች እና መልዕክቶች ያሉ የግል መረጃዎችን ጨምሮ የማሳወቂያ ይዘቶችን መድረስ ይችላሉ። ይህ ባህሪ እንደ የስልክ ጥሪዎችን መመለስ እና አትረብሽን መቆጣጠርን ያሉ ማሳወቂያዎችን ማሰናበት ወይም ምላሽ መስጠት ይችላል።"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"የዕለት ተዕለት ሁነታ መረጃ ማሳወቂያዎች"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ባትሪ ከተለመደው ኃይል መሙላት በፊት ሊያልቅ ይችላል"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"የባትሪ ቆጣቢ የባትሪ ዕድሜን ለማራዘም ገብሯል።"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"የባትሪ ኃይል ቆጣቢ በርቷል"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"የባትሪ ዕድሜን ለማራዘም የባትሪ አጠቃቀምን በመቀነስ ላይ"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ባትሪ ቆጣቢ"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"የባትሪ ቆጣቢ ጠፍቷል"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ስልክ በቂ የባትሪ ኃይል አለው። ባህሪያት ከእንግዲህ የተገደቡ አይደሉም።"</string> diff --git a/core/res/res/values-ar/strings.xml b/core/res/res/values-ar/strings.xml index 08929b21dab4..b75f9622ed98 100644 --- a/core/res/res/values-ar/strings.xml +++ b/core/res/res/values-ar/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"بايت"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"كيلوبايت"</string> - <string name="megabyteShort" msgid="6649361267635823443">"ميغابايت"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"غيغابايت"</string> - <string name="terabyteShort" msgid="1822367128583886496">"تيرابايت"</string> - <string name="petabyteShort" msgid="5651571254228534832">"بيتابايت"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<بلا عنوان>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ليس هناك رقم هاتف)"</string> @@ -1928,6 +1923,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"تفضيل المنطقة"</string> <string name="search_language_hint" msgid="7004225294308793583">"اكتب اسم اللغة"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"اللغات المقترَحة"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"اللغات المُقترَحة"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"المناطق المُقترَحة"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"جميع اللغات"</string> <string name="region_picker_section_all" msgid="756441309928774155">"كل المناطق"</string> <string name="locale_search_menu" msgid="6258090710176422934">"البحث"</string> @@ -2082,8 +2079,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"مزيد من المعلومات"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"تم إبدال الإشعارات التكيُّفية لنظام التشغيل Android في الإصدار 12 منه بالإشعارات المحسّنة. تعرض هذه الميزة إجراءات وردودًا مقترحة وتنظِّم الإشعارات.\n\nيمكن للإشعارات المحسّنة الوصول إلى محتوى الإشعارات، بما في ذلك المعلومات الشخصية، مثلاً أسماء جهات الاتصال والرسائل. يمكن لهذه الميزة أيضًا إغلاق الإشعارات أو الاستجابة لها، مثلاً الردّ على مكالمات الهاتف والتحكّم في ميزة \"عدم الإزعاج\"."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"إشعار معلومات \"وضع سلسلة الإجراءات\""</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"قد تنفد طاقة البطارية قبل الشحن المعتاد"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"تم تفعيل \"توفير شحن البطارية\" لإطالة عمرها."</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"توفير شحن البطارية"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"تم تفعيل ميزة \"توفير شحن البطارية\""</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"تم شحن الهاتف بدرجة كافية وتفعيل الميزات مرة أخرى"</string> diff --git a/core/res/res/values-as/strings.xml b/core/res/res/values-as/strings.xml index 28ca15636fed..c1c1e96222d5 100644 --- a/core/res/res/values-as/strings.xml +++ b/core/res/res/values-as/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"বা."</string> - <string name="kilobyteShort" msgid="2214285521564195803">"কে. বি."</string> - <string name="megabyteShort" msgid="6649361267635823443">"এম. বি."</string> - <string name="gigabyteShort" msgid="7515809460261287991">"জি. বি."</string> - <string name="terabyteShort" msgid="1822367128583886496">"টি. বি."</string> - <string name="petabyteShort" msgid="5651571254228534832">"পি. বি."</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<শিৰোনামবিহীন>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(কোনো ফ\'ন নম্বৰ নাই)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"অঞ্চলৰ অগ্ৰাধিকাৰ"</string> <string name="search_language_hint" msgid="7004225294308793583">"ভাষাৰ নাম লিখক"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"প্ৰস্তাৱিত"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"পৰামৰ্শিত ভাষাসমূহ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"চুপাৰিছ কৰা অঞ্চলসমূহ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"সকলো ভাষা"</string> <string name="region_picker_section_all" msgid="756441309928774155">"আটাইবোৰ অঞ্চল"</string> <string name="locale_search_menu" msgid="6258090710176422934">"সন্ধান কৰক"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"অধিক জানক"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12ত Androidৰ অভিযোজিত জাননীক উন্নত জাননীৰ দ্বাৰা সলনি কৰা হৈছে। এই সুবিধাটোৱে পৰামৰ্শ দিয়া কাৰ্য আৰু প্ৰত্যুত্তৰ দেখুৱায় আৰু আপোনাৰ জাননীসমূহ শৃংখলাবদ্ধ কৰে।\n\nউন্নত জাননীয়ে সম্পৰ্কৰ নাম আৰু বাৰ্তাৰ দৰে ব্যক্তিগত তথ্যকে ধৰি জাননীৰ সমল এক্সেছ কৰিব পাৰে। এই সুবিধাটোৱে জাননী অগ্ৰাহ্য কৰিব অথবা জাননীৰ প্ৰতি সঁহাৰি জনাবও পাৰে, যেনে ফ’ন কলৰ উত্তৰ দিয়া আৰু অসুবিধা নিদিব সুবিধাটো নিয়ন্ত্ৰণ কৰা আদি।"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ৰুটিন ম’ডৰ তথ্য জাননী"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"চাৰ্জ কৰাৰ সচৰাচৰ সময়ৰ আগতেই বেটাৰী শেষ হ’ব পাৰে"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"বেটাৰীৰ খৰচ কমাবলৈ বেটাৰী সঞ্চয়কাৰী অন কৰা হৈছে"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"বেটাৰী সঞ্চয়কাৰী"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"বেটাৰী সঞ্চয়কাৰী অফ কৰা হ’ল"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ফ\'নটোত পর্যাপ্ত পৰিমাণে চার্জ আছে। সুবিধাবোৰ আৰু সীমাবদ্ধ কৰা নাই।"</string> diff --git a/core/res/res/values-az/strings.xml b/core/res/res/values-az/strings.xml index a7911de524c5..8343ae683a8a 100644 --- a/core/res/res/values-az/strings.xml +++ b/core/res/res/values-az/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"Başlıqsız"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Telefon nömrəsi yoxdur)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Region seçimi"</string> <string name="search_language_hint" msgid="7004225294308793583">"Dil adını daxil edin"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Təklif edilmiş"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Təklif edilən dillər"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Təklif edilən regionlar"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Bütün dillər"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Bütün bölgələr"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Axtarın"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Ətraflı məlumat"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12-də qabaqcıl bildirişlər var. Bu funksiya bütün bildirişləri qaydaya salır, cavab və əməliyyatlara dair tövsiyə verir.\n\nFunksiyanın kontaktlar, mesajlar və şəxsi məlumatlar daxil olmaqla bütün bildirişlərə girişi var. Zənglərə cavab verə, \"Narahat etməyin\" rejimini idarə edə, bildirişləri qapada və cavablaya bilər."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Rejim üçün məlumat bildirişi"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Batareya həmişəki vaxtdan əvvəl bitə bilər"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Enerjiyə Qənaət rejimi batareya istifadəsinin müddətini artırmaq üçün aktiv edilir"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Enerjiyə qənaət"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Enerjiyə qənaət deaktivdir"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefonun kifayət qədər enerjisi var. Funksiyalar artıq məhdud deyil."</string> diff --git a/core/res/res/values-b+sr+Latn/strings.xml b/core/res/res/values-b+sr+Latn/strings.xml index 971d23d3e7df..f1efc7a93b4e 100644 --- a/core/res/res/values-b+sr+Latn/strings.xml +++ b/core/res/res/values-b+sr+Latn/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Bez imena>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nema broja telefona)"</string> @@ -1925,6 +1920,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Podešavanje regiona"</string> <string name="search_language_hint" msgid="7004225294308793583">"Unesite naziv jezika"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Predloženi"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Predloženi jezici"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Predloženi regioni"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Svi jezici"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Svi regioni"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Pretraži"</string> @@ -2079,8 +2076,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Saznajte više"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Poboljšana obaveštenja su zamenila Android prilagodljiva obaveštenja u Android-u 12. Ova funkcija pokazuje predložene radnje i odgovore, i organizuje obaveštenja.\n\nPoboljšana obaveštenja mogu da pristupaju sadržaju obaveštenja, uključujući lične podatke poput imena kontakata i poruka. Ova funkcija može i da odbacuje obaveštenja ili da odgovara na njih, na primer, da se javlja na telefonske pozive i kontroliše režim Ne uznemiravaj."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Obaveštenje o informacijama Rutinskog režima"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Baterija će se možda isprazniti pre uobičajenog punjenja"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Ušteda baterije je aktivirana da bi se produžilo trajanje baterije"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Ušteda baterije je uključena"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Smanjuje se potrošnja baterije da bi se produžilo njeno trajanje"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Ušteda baterije"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Ušteda baterije je isključena"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Baterija telefona je dovoljno napunjena. Funkcije više nisu ograničene."</string> diff --git a/core/res/res/values-be/strings.xml b/core/res/res/values-be/strings.xml index 706c870575d5..7c313c8d5592 100644 --- a/core/res/res/values-be/strings.xml +++ b/core/res/res/values-be/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"Б"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"КБ"</string> - <string name="megabyteShort" msgid="6649361267635823443">"МБ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ГБ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"Тб"</string> - <string name="petabyteShort" msgid="5651571254228534832">"Пб"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Без назвы>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Няма нумара тэлефона)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Параметры рэгіёна"</string> <string name="search_language_hint" msgid="7004225294308793583">"Увядзіце назву мовы"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Прапанаваныя"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Прапанаваныя мовы"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Прапанаваныя рэгіёны"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Усе мовы"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Усе рэгіёны"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Шукаць"</string> @@ -2080,8 +2077,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Даведацца больш"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"У версіі Android 12 Адаптыўныя апавяшчэнні Android заменены Палепшанымі апавяшчэннямі. Гэта функцыя ўпарадкоўвае вашы апавяшчэнні і паказвае прапановы дзеянняў і адказаў.\n\nПалепшаныя апавяшчэнні маюць доступ да змесціва ўсіх апавяшчэнняў, у тым ліку да асабістай інфармацыі – імён кантактаў і паведамленняў. Яшчэ гэта функцыя можа адхіляць апавяшчэнні ці адказваць на іх, напрыклад рэагаваць на тэлефонныя выклікі і кіраваць функцыяй \"Не турбаваць\"."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Апавяшчэнне з інфармацыяй пра ўсталяваны рэжым"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Акумулятар можа разрадзіцца хутчэй, чым прыйдзе час звычайнай зарадкі"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Каб павялічыць тэрмін работы акумулятара, уключаны рэжым эканоміі зараду"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Рэжым энергазберажэння"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Рэжым эканоміі зараду выключаны"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"У тэлефона дастатковы ўзровень зараду. Функцыі больш не абмежаваны."</string> diff --git a/core/res/res/values-bg/strings.xml b/core/res/res/values-bg/strings.xml index 6a8240a8b2f4..d52e3e23ae8f 100644 --- a/core/res/res/values-bg/strings.xml +++ b/core/res/res/values-bg/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"Б"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"КБ"</string> - <string name="megabyteShort" msgid="6649361267635823443">"МБ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ГБ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ТБ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"ПБ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Без заглавие>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Няма телефонен номер)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Предпочитание за региона"</string> <string name="search_language_hint" msgid="7004225294308793583">"Въведете име на език"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Предложени"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Предложени езици"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Предложени региони"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Всички езици"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Всички региони"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Търсене"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Научете повече"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Адаптивните известия бяха заменени от функцията за подобрени известия в Android 12. Тя показва предложени действия и отговори и организира известията ви.\n\nФункцията може да осъществява достъп до съдържанието в известията, включително личната информация, като например имената на контактите и текстовите съобщения. Тя има възможност да отхвърля известията или да предприема действия в тях, като например приемане на телефонни обаждания или контролиране на режима „Не безпокойте“."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Известие с информация за режима на поредица"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Батерията може да се изтощи преди обичайното зареждане"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Режимът за запазване на батерията е активиран с цел удължаване на живота на батерията"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Режим за запазване на батерията"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Режимът за запазване на батерията е изключен"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Батерията на телефона има достатъчно заряд. Функциите вече не са ограничени."</string> diff --git a/core/res/res/values-bn/strings.xml b/core/res/res/values-bn/strings.xml index 2680ac10453c..7ba759fc4717 100644 --- a/core/res/res/values-bn/strings.xml +++ b/core/res/res/values-bn/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"বাইট"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<শিরোনামহীন>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(কোনো ফোন নম্বর নেই)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"পছন্দের অঞ্চল"</string> <string name="search_language_hint" msgid="7004225294308793583">"ভাষার নাম লিখুন"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"প্রস্তাবিত"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"সাজেস্ট করা ভাষা"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"সাজেস্ট করা অঞ্চল"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"সকল ভাষা"</string> <string name="region_picker_section_all" msgid="756441309928774155">"সমস্ত অঞ্চল"</string> <string name="locale_search_menu" msgid="6258090710176422934">"সার্চ"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"আরও জানুন"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 ভার্সনে Android অ্যাডাপ্টিভ বিজ্ঞপ্তির পরিবর্তে এনহ্যান্সড বিজ্ঞপ্তি এসেছে। এই ফিচারটি সাজেস্ট করা অ্যাকশন ও উত্তর দেখায় এবং আপনার বিজ্ঞপ্তিগুলি সাজিয়ে রাখে। \n\nএনহ্যান্সড বিজ্ঞপ্তি পরিচিতির নাম এবং মেসেজের মতো ব্যক্তিগত তথ্য সমেত বিজ্ঞপ্তির কন্টেন্টে অ্যাক্সেস করতে পারে। এছাড়া, এই ফিচার বিজ্ঞপ্তি খারিজ করতে বা তার উত্তর দিতে পারে, যেমন ফোন কলের উত্তর দেওয়া এবং \'বিরক্ত করবে না\' মোড নিয়ন্ত্রণ করা।"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"রুটিন মোডের তথ্য সংক্রান্ত বিজ্ঞপ্তি"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"সাধারণত যখন চার্জ দেন, তার আগে চার্জ শেষ হয়ে যেতে পারে"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ডিভাইস বেশিক্ষণ চালু রাখতে ব্যাটারি সেভার চালু করা হয়েছে"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"\'ব্যাটারি সেভার\' ফিচার চালু করা হয়েছে"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ব্যাটারির আয়ু বাড়াতে ব্যাটারির ব্যবহার কমানো হচ্ছে"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ব্যাটারি সেভার"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ব্যাটারি সেভার বন্ধ করা আছে"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ফোনের ব্যাটারিতে যথেষ্ট চার্জ আছে। ফিচারগুলির উপর আর বিধিনিষেধ নেই।"</string> diff --git a/core/res/res/values-bs/strings.xml b/core/res/res/values-bs/strings.xml index fe3ba1725e0a..5616dd8f4ea8 100644 --- a/core/res/res/values-bs/strings.xml +++ b/core/res/res/values-bs/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Bez naslova>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nema broja telefona)"</string> @@ -1925,6 +1920,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Izbor regije"</string> <string name="search_language_hint" msgid="7004225294308793583">"Upišite ime jezika"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Predloženo"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Predloženi jezici"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Predložene regije"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Svi jezici"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Sve regije"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Pretraga"</string> @@ -2079,8 +2076,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Saznajte više"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Poboljšana obavještenja su zamijenila Prilagodljiva obavještenja Androida u verziji Android 12. Ova funkcija prikazuje predložene radnje i odgovore te organizira vaša obavještenja.\n\nPoboljšana obavještenja mogu pristupiti sadržaju obavještenja, uključujući lične informacije kao što su imena kontakata i poruke. Ova funkcija također može odbacivati obavještenja ili reagirati na njih, npr. može odgovarati na telefonske pozive i kontrolirati funkciju Ne ometaj."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Obavještenje za informacije Rutinskog načina"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Moguće je da će se baterija isprazniti prije uobičajenog punjenja"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Ušteda baterije je aktivirana da bi se produžio vijek trajanja baterije"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Uključena je štednja baterije"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Smanjuje se potrošnja baterije radi produženja njezinog trajanja"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Ušteda baterije"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Ušteda baterije je isključena"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefon se dovoljno napunio. Funkcije nisu više ograničene."</string> diff --git a/core/res/res/values-ca/strings.xml b/core/res/res/values-ca/strings.xml index 66da2194e250..70faff59ea0b 100644 --- a/core/res/res/values-ca/strings.xml +++ b/core/res/res/values-ca/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sense títol>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Sense número de telèfon)"</string> @@ -636,7 +631,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"Visita un proveïdor de reparacions."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"No es pot crear el model facial. Torna-ho a provar."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"Massa brillant Prova una il·luminació més suau."</string> - <string name="face_acquired_too_dark" msgid="7919016380747701228">"Prova una il·luminació més brillant"</string> + <string name="face_acquired_too_dark" msgid="7919016380747701228">"Prova amb més il·luminació"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Allunya\'t del telèfon"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Apropa el telèfon"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Mou el telèfon més amunt"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferència de regió"</string> <string name="search_language_hint" msgid="7004225294308793583">"Escriu el nom de l\'idioma"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggerits"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Idiomes suggerits"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Regions suggerides"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Tots els idiomes"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Totes les regions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Cerca"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Més informació"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Les notificacions millorades han substituït les notificacions adaptatives d\'Android a Android 12. Aquesta funció mostra les accions i respostes suggerides, i organitza les teves notificacions.\n\nLes notificacions millorades poden accedir al contingut de les notificacions, inclosa la informació personal com els noms dels contactes i els missatges. Aquesta funció també pot ignorar les notificacions o respondre-hi; per exemple, pot contestar a trucades i controlar el mode No molestis."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificació d\'informació del mode de rutina"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"És possible que la bateria s\'esgoti abans de la càrrega habitual"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"S\'ha activat l\'estalvi de bateria per prolongar-ne la durada"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Estalvi de bateria s\'ha activat"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"S\'està reduint l\'ús de la bateria per allargar-ne la durada"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Estalvi de bateria"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"L\'estalvi de bateria s\'ha desactivat"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"El telèfon té prou bateria. Les funcions ja no estan restringides."</string> diff --git a/core/res/res/values-cs/strings.xml b/core/res/res/values-cs/strings.xml index 5c23a054cffe..c42b888e2e70 100644 --- a/core/res/res/values-cs/strings.xml +++ b/core/res/res/values-cs/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Bez názvu>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(žádné telefonní číslo)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferovaná oblast"</string> <string name="search_language_hint" msgid="7004225294308793583">"Zadejte název jazyka"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Navrhované"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Navrhované jazyky"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Navrhované oblasti"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Všechny jazyky"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Všechny oblasti"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Vyhledávání"</string> @@ -2080,8 +2077,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Další informace"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Adaptivní oznámení pro Android byla v systému Android 12 nahrazena vylepšenými oznámeními. Tato funkce ukazuje navrhované akce a odpovědi a uspořádává oznámení.\n\nVylepšená oznámení mají přístup k obsahu oznámení, včetně osobních údajů, jako jsou jména kontaktů a zprávy. Tato funkce také může zavírat oznámení nebo na ně odpovídat, například přijímat telefonní hovory a ovládat režim Nerušit."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Informační oznámení režimu sledu činností"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Baterie se možná vybije před obvyklým časem nabití"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Byl aktivován spořič baterie za účelem prodloužení výdrže"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Zapnul se spořič baterie"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Je třeba snížit využití baterie za účelem prodloužení její výdrže"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Spořič baterie"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Spořič baterie je vypnutý"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefon je dostatečně nabitý. Funkce už nejsou omezeny."</string> diff --git a/core/res/res/values-da/strings.xml b/core/res/res/values-da/strings.xml index 4db987f1b317..80476bb4f166 100644 --- a/core/res/res/values-da/strings.xml +++ b/core/res/res/values-da/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"b"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"Tb"</string> - <string name="petabyteShort" msgid="5651571254228534832">"Pb"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Uden titel>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Intet telefonnummer)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Områdeindstilling"</string> <string name="search_language_hint" msgid="7004225294308793583">"Angiv sprog"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Foreslået"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Foreslåede sprog"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Foreslåede områder"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Alle sprog"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Alle områder"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Søg"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Få flere oplysninger"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Tilpassede Android-notifikationer blev erstattet af forbedrede notifikationer i Android 12. Denne funktion viser foreslåede handlinger og svar samt organiserer dine notifikationer.\n\nForbedrede notifikationer kan få adgang til indhold i notifikationer, bl.a. personlige oplysninger såsom beskeder og navne på kontakter. Funktionen kan også afvise eller svare på notifikationer, f.eks. ved at besvare telefonopkald og justere Forstyr ikke."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notifikation med oplysninger om rutinetilstand"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Enheden løber muligvis tør for batteri, inden du normalt oplader den"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Batterisparefunktion er aktiveret for at forlænge batteritiden"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Batterisparefunktion er aktiveret"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reducerer batteriforbruget for at forlænge batteritiden"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Batterisparefunktion"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Batterisparefunktion blev slået fra"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefonen har tilstrækkeligt batteri. Funktionerne er ikke længere begrænsede."</string> diff --git a/core/res/res/values-de/strings.xml b/core/res/res/values-de/strings.xml index 9344e52841d3..4cfb46f2d836 100644 --- a/core/res/res/values-de/strings.xml +++ b/core/res/res/values-de/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Unbenannt>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Keine Telefonnummer)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Region auswählen"</string> <string name="search_language_hint" msgid="7004225294308793583">"Sprache eingeben"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Vorschläge"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Vorgeschlagene Sprachen"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Vorgeschlagene Regionen"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Alle Sprachen"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Alle Regionen"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Suche"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Weitere Informationen"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Die adaptiven Benachrichtigungen wurden in Android 12 durch die Funktion „Erweiterte Benachrichtigungen“ ersetzt. Diese Funktion zeigt Vorschläge für Aktionen und Antworten an und sortiert Benachrichtigungen.\n\nDie Funktion hat Zugriff auf alle Benachrichtigungen, darunter auch personenbezogene Daten wie Kontaktnamen und Nachrichten. Außerdem kann sie auf Benachrichtigungen antworten oder diese schließen und so beispielsweise Anrufe entgegennehmen oder „Bitte nicht stören“ steuern."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Infomitteilung zum Ablaufmodus"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Dein Akku könnte vor der gewöhnlichen Ladezeit leer sein"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Energiesparmodus aktiviert, um die Akkulaufzeit zu verlängern"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Energiesparmodus"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Energiesparmodus deaktiviert"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Das Smartphone ist ausreichend geladen. Es sind keine Funktionen mehr beschränkt."</string> diff --git a/core/res/res/values-el/strings.xml b/core/res/res/values-el/strings.xml index 8389e3088878..b246d0b138a6 100644 --- a/core/res/res/values-el/strings.xml +++ b/core/res/res/values-el/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Χωρίς τίτλο>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Δεν υπάρχει τηλεφωνικός αριθμός)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Προτίμηση περιοχής"</string> <string name="search_language_hint" msgid="7004225294308793583">"Εισαγ. όνομα γλώσσας"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Προτεινόμενες"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Προτεινόμενες γλώσσες"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Προτεινόμενες περιοχές"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Όλες οι γλώσσες"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Όλες οι περιοχές"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Αναζήτηση"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Μάθετε περισσότερα"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Στο Android 12, οι Βελτιωμένες ειδοποιήσεις αντικατέστησαν τις Προσαρμοστικές ειδοποιήσεις Android. Αυτή η λειτουργία εμφανίζει προτεινόμενες ενέργειες και απαντήσεις και οργανώνει τις ειδοποιήσεις σας.\n\nΟι Βελτιωμένες ειδοποιήσεις μπορούν να αποκτήσουν πρόσβαση σε περιεχόμενο ειδοποιήσεων, συμπεριλαμβανομένων προσωπικών στοιχείων, όπως ονομάτων επαφών και μηνυμάτων Αυτή η λειτουργία παρέχει επίσης τη δυνατότητα παράβλεψης ειδοποιήσεων ή απάντησης σε αυτές, όπως η απάντηση σε τηλεφωνικές κλήσεις και ο έλεγχος της λειτουργίας Μην ενοχλείτε."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Ειδοποίηση πληροφοριών λειτουργίας Ρουτίνας"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Η μπαταρία μπορεί να εξαντληθεί πριν από τη συνηθισμένη φόρτιση"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Η Εξοικονόμηση μπαταρίας ενεργοποιήθηκε για την επέκταση της διάρκειας ζωής της μπαταρίας"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Η Εξοικονόμηση μπαταρίας ενεργοποιήθηκε"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Μείωση της χρήσης της μπαταρίας για παράταση της διάρκειας ζωής της μπαταρίας"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Εξοικονόμηση μπαταρίας"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Η Εξοικονόμηση μπαταρίας απενεργοποιήθηκε"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Το τηλέφωνο είναι αρκετά φορτισμένο. Οι λειτουργίες δεν περιορίζονται πλέον."</string> diff --git a/core/res/res/values-en-rAU/strings.xml b/core/res/res/values-en-rAU/strings.xml index 180ff8fa73db..32ad56dcd861 100644 --- a/core/res/res/values-en-rAU/strings.xml +++ b/core/res/res/values-en-rAU/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Untitled>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(No phone number)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Region preference"</string> <string name="search_language_hint" msgid="7004225294308793583">"Type language name"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggested"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Suggested languages"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Suggested regions"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"All languages"</string> <string name="region_picker_section_all" msgid="756441309928774155">"All regions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Search"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Learn more"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Enhanced notifications replaced Android adaptive notifications in Android 12. This feature shows suggested actions and replies, and organises your notifications.\n\nEnhanced notifications can access notification content, including personal information like contact names and messages. This feature can also dismiss or respond to notifications, such as answering phone calls, and control Do Not Disturb."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Routine Mode info notification"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Battery may run out before usual charge"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Battery Saver activated to extend battery life"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Battery Saver turned on"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reducing battery usage to extend battery life"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Battery Saver"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Battery Saver turned off"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Phone has enough charge. Features no longer restricted."</string> diff --git a/core/res/res/values-en-rCA/strings.xml b/core/res/res/values-en-rCA/strings.xml index aa94682722ca..a678b28c61f9 100644 --- a/core/res/res/values-en-rCA/strings.xml +++ b/core/res/res/values-en-rCA/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Untitled>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(No phone number)"</string> @@ -81,8 +76,8 @@ <string name="RestrictedOnEmergencyTitle" msgid="2852916906106191866">"Emergency calling unavailable"</string> <string name="RestrictedOnNormalTitle" msgid="7009474589746551737">"No voice service"</string> <string name="RestrictedOnAllVoiceTitle" msgid="3982069078579103087">"No voice service or emergency calling"</string> - <string name="RestrictedStateContent" msgid="7693575344608618926">"Temporarily turned off by your operator"</string> - <string name="RestrictedStateContentMsimTemplate" msgid="5228235722511044687">"Temporarily turned off by your operator for SIM <xliff:g id="SIMNUMBER">%d</xliff:g>"</string> + <string name="RestrictedStateContent" msgid="7693575344608618926">"Temporarily turned off by your carrier"</string> + <string name="RestrictedStateContentMsimTemplate" msgid="5228235722511044687">"Temporarily turned off by your carrier for SIM <xliff:g id="SIMNUMBER">%d</xliff:g>"</string> <string name="NetworkPreferenceSwitchTitle" msgid="1008329951315753038">"Can’t reach mobile network"</string> <string name="NetworkPreferenceSwitchSummary" msgid="2086506181486324860">"Try changing preferred network. Tap to change."</string> <string name="EmergencyCallWarningTitle" msgid="1615688002899152860">"Emergency calling unavailable"</string> @@ -124,10 +119,10 @@ <string name="roamingTextSearching" msgid="5323235489657753486">"Searching for Service"</string> <string name="wfcRegErrorTitle" msgid="3193072971584858020">"Couldn’t set up Wi‑Fi calling"</string> <string-array name="wfcOperatorErrorAlertMessages"> - <item msgid="468830943567116703">"To make calls and send messages over Wi-Fi, first ask your operator to set up this service. Then turn on Wi-Fi calling again from Settings. (Error code: <xliff:g id="CODE">%1$s</xliff:g>)"</item> + <item msgid="468830943567116703">"To make calls and send messages over Wi-Fi, first ask your carrier to set up this service. Then turn on Wi-Fi calling again from Settings. (Error code: <xliff:g id="CODE">%1$s</xliff:g>)"</item> </string-array> <string-array name="wfcOperatorErrorNotificationMessages"> - <item msgid="4795145070505729156">"Issue registering Wi‑Fi calling with your operator: <xliff:g id="CODE">%1$s</xliff:g>"</item> + <item msgid="4795145070505729156">"Issue registering Wi‑Fi calling with your carrier: <xliff:g id="CODE">%1$s</xliff:g>"</item> </string-array> <!-- no translation found for wfcSpnFormat_spn (2982505428519096311) --> <skip /> @@ -190,7 +185,7 @@ <string name="work_profile_deleted_reason_maximum_password_failure" msgid="1080323158315663167">"Too many password attempts"</string> <string name="device_ownership_relinquished" msgid="4080886992183195724">"Admin relinquished device for personal use"</string> <string name="network_logging_notification_title" msgid="554983187553845004">"Device is managed"</string> - <string name="network_logging_notification_text" msgid="1327373071132562512">"Your organisation manages this device and may monitor network traffic. Tap for details."</string> + <string name="network_logging_notification_text" msgid="1327373071132562512">"Your organization manages this device and may monitor network traffic. Tap for details."</string> <string name="location_changed_notification_title" msgid="3620158742816699316">"Apps can access your location"</string> <string name="location_changed_notification_text" msgid="7158423339982706912">"Contact your IT admin to find out more"</string> <string name="geofencing_service" msgid="3826902410740315456">"Geofencing service"</string> @@ -203,7 +198,7 @@ <string name="device_policy_manager_service" msgid="5085762851388850332">"Device Policy manager service"</string> <string name="music_recognition_manager_service" msgid="7481956037950276359">"Music recognition manager service"</string> <string name="factory_reset_warning" msgid="6858705527798047809">"Your device will be erased"</string> - <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organisation\'s admin."</string> + <string name="factory_reset_message" msgid="2657049595153992213">"The admin app can\'t be used. Your device will now be erased.\n\nIf you have questions, contact your organization\'s admin."</string> <string name="printing_disabled_by" msgid="3517499806528864633">"Printing disabled by <xliff:g id="OWNER_APP">%s</xliff:g>."</string> <string name="personal_apps_suspension_title" msgid="7561416677884286600">"Turn on your work profile"</string> <string name="personal_apps_suspension_text" msgid="6115455688932935597">"Your personal apps are blocked until you turn on your work profile"</string> @@ -726,8 +721,8 @@ <string name="permdesc_bindConditionProviderService" msgid="6106018791256120258">"Allows the holder to bind to the top-level interface of a condition provider service. Should never be needed for normal apps."</string> <string name="permlab_bindDreamService" msgid="4776175992848982706">"bind to a dream service"</string> <string name="permdesc_bindDreamService" msgid="9129615743300572973">"Allows the holder to bind to the top-level interface of a dream service. Should never be needed for normal apps."</string> - <string name="permlab_invokeCarrierSetup" msgid="5098810760209818140">"invoke the operator-provided configuration app"</string> - <string name="permdesc_invokeCarrierSetup" msgid="4790845896063237887">"Allows the holder to invoke the operator-provided configuration app. Should never be needed for normal apps."</string> + <string name="permlab_invokeCarrierSetup" msgid="5098810760209818140">"invoke the carrier-provided configuration app"</string> + <string name="permdesc_invokeCarrierSetup" msgid="4790845896063237887">"Allows the holder to invoke the carrier-provided configuration app. Should never be needed for normal apps."</string> <string name="permlab_accessNetworkConditions" msgid="1270732533356286514">"listen for observations on network conditions"</string> <string name="permdesc_accessNetworkConditions" msgid="2959269186741956109">"Allows an application to listen for observations on network conditions. Should never be needed for normal apps."</string> <string name="permlab_setInputCalibration" msgid="932069700285223434">"change input device calibration"</string> @@ -738,10 +733,10 @@ <string name="permdesc_handoverStatus" msgid="3842269451732571070">"Allows this application to receive information about current Android Beam transfers"</string> <string name="permlab_removeDrmCertificates" msgid="710576248717404416">"remove DRM certificates"</string> <string name="permdesc_removeDrmCertificates" msgid="4068445390318355716">"Allows an application to remove DRM certficates. Should never be needed for normal apps."</string> - <string name="permlab_bindCarrierMessagingService" msgid="3363450860593096967">"bind to an operator messaging service"</string> - <string name="permdesc_bindCarrierMessagingService" msgid="6316457028173478345">"Allows the holder to bind to the top-level interface of an operator messaging service. Should never be needed for normal apps."</string> - <string name="permlab_bindCarrierServices" msgid="2395596978626237474">"bind to operator services"</string> - <string name="permdesc_bindCarrierServices" msgid="9185614481967262900">"Allows the holder to bind to operator services. Should never be needed for normal apps."</string> + <string name="permlab_bindCarrierMessagingService" msgid="3363450860593096967">"bind to a carrier messaging service"</string> + <string name="permdesc_bindCarrierMessagingService" msgid="6316457028173478345">"Allows the holder to bind to the top-level interface of a carrier messaging service. Should never be needed for normal apps."</string> + <string name="permlab_bindCarrierServices" msgid="2395596978626237474">"bind to carrier services"</string> + <string name="permdesc_bindCarrierServices" msgid="9185614481967262900">"Allows the holder to bind to carrier services. Should never be needed for normal apps."</string> <string name="permlab_access_notification_policy" msgid="5524112842876975537">"access Do Not Disturb"</string> <string name="permdesc_access_notification_policy" msgid="8538374112403845013">"Allows the app to read and write Do Not Disturb configuration."</string> <string name="permlab_startViewPermissionUsage" msgid="1504564328641112341">"start view permission usage"</string> @@ -1335,7 +1330,7 @@ <string name="sim_added_message" msgid="6602906609509958680">"Restart your device to access the mobile network."</string> <string name="sim_restart_button" msgid="8481803851341190038">"Restart"</string> <string name="install_carrier_app_notification_title" msgid="5712723402213090102">"Activate mobile service"</string> - <string name="install_carrier_app_notification_text" msgid="2781317581274192728">"Download the mobile app to activate your new SIM"</string> + <string name="install_carrier_app_notification_text" msgid="2781317581274192728">"Download the carrier app to activate your new SIM"</string> <string name="install_carrier_app_notification_text_app_name" msgid="4086877327264106484">"Download the <xliff:g id="APP_NAME">%1$s</xliff:g> app to activate your new SIM"</string> <string name="install_carrier_app_notification_button" msgid="6257740533102594290">"Download app"</string> <string name="carrier_app_notification_title" msgid="5815477368072060250">"New SIM inserted"</string> @@ -1587,7 +1582,7 @@ <string name="ssl_certificate_is_valid" msgid="7293675884598527081">"This certificate is valid."</string> <string name="issued_to" msgid="5975877665505297662">"Issued to:"</string> <string name="common_name" msgid="1486334593631798443">"Common name:"</string> - <string name="org_name" msgid="7526331696464255245">"Organisation:"</string> + <string name="org_name" msgid="7526331696464255245">"Organization:"</string> <string name="org_unit" msgid="995934486977223076">"Organisational unit:"</string> <string name="issued_by" msgid="7872459822431585684">"Issued by:"</string> <string name="validity_period" msgid="1717724283033175968">"Validity:"</string> @@ -1640,7 +1635,7 @@ <string name="kg_sim_pin_instructions" msgid="6479401489471690359">"Enter SIM PIN"</string> <string name="kg_pin_instructions" msgid="7355933174673539021">"Enter PIN"</string> <string name="kg_password_instructions" msgid="7179782578809398050">"Enter Password"</string> - <string name="kg_puk_enter_puk_hint" msgid="6696187482616360994">"SIM is now disabled. Enter PUK code to continue. Contact operator for details."</string> + <string name="kg_puk_enter_puk_hint" msgid="6696187482616360994">"SIM is now disabled. Enter PUK code to continue. Contact carrier for details."</string> <string name="kg_puk_enter_pin_hint" msgid="8190982314659429770">"Enter desired PIN code"</string> <string name="kg_enter_confirm_pin_hint" msgid="6372557107414074580">"Confirm desired PIN code"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="8871937892678885545">"Unlocking SIM card…"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Region preference"</string> <string name="search_language_hint" msgid="7004225294308793583">"Type language name"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggested"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Suggested languages"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Suggested regions"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"All languages"</string> <string name="region_picker_section_all" msgid="756441309928774155">"All regions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Search"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Learn more"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Enhanced notifications replaced Android adaptive notifications in Android 12. This feature shows suggested actions and replies, and organises your notifications.\n\nEnhanced notifications can access notification content, including personal information like contact names and messages. This feature can also dismiss or respond to notifications, such as answering phone calls, and control Do Not Disturb."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Routine Mode info notification"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Battery may run out before usual charge"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Battery Saver activated to extend battery life"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Battery Saver turned on"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reducing battery usage to extend battery life"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Battery Saver"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Battery Saver turned off"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Phone has enough charge. Features no longer restricted."</string> diff --git a/core/res/res/values-en-rGB/strings.xml b/core/res/res/values-en-rGB/strings.xml index f4f7e80f6307..38c97dbf86a6 100644 --- a/core/res/res/values-en-rGB/strings.xml +++ b/core/res/res/values-en-rGB/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Untitled>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(No phone number)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Region preference"</string> <string name="search_language_hint" msgid="7004225294308793583">"Type language name"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggested"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Suggested languages"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Suggested regions"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"All languages"</string> <string name="region_picker_section_all" msgid="756441309928774155">"All regions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Search"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Learn more"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Enhanced notifications replaced Android adaptive notifications in Android 12. This feature shows suggested actions and replies, and organises your notifications.\n\nEnhanced notifications can access notification content, including personal information like contact names and messages. This feature can also dismiss or respond to notifications, such as answering phone calls, and control Do Not Disturb."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Routine Mode info notification"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Battery may run out before usual charge"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Battery Saver activated to extend battery life"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Battery Saver turned on"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reducing battery usage to extend battery life"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Battery Saver"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Battery Saver turned off"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Phone has enough charge. Features no longer restricted."</string> diff --git a/core/res/res/values-en-rIN/strings.xml b/core/res/res/values-en-rIN/strings.xml index 631cf2b0c3da..06dd854ecaa6 100644 --- a/core/res/res/values-en-rIN/strings.xml +++ b/core/res/res/values-en-rIN/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Untitled>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(No phone number)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Region preference"</string> <string name="search_language_hint" msgid="7004225294308793583">"Type language name"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggested"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Suggested languages"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Suggested regions"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"All languages"</string> <string name="region_picker_section_all" msgid="756441309928774155">"All regions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Search"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Learn more"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Enhanced notifications replaced Android adaptive notifications in Android 12. This feature shows suggested actions and replies, and organises your notifications.\n\nEnhanced notifications can access notification content, including personal information like contact names and messages. This feature can also dismiss or respond to notifications, such as answering phone calls, and control Do Not Disturb."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Routine Mode info notification"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Battery may run out before usual charge"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Battery Saver activated to extend battery life"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Battery Saver turned on"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reducing battery usage to extend battery life"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Battery Saver"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Battery Saver turned off"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Phone has enough charge. Features no longer restricted."</string> diff --git a/core/res/res/values-en-rXC/strings.xml b/core/res/res/values-en-rXC/strings.xml index 3bb25cb3ebe4..1bac742e8273 100644 --- a/core/res/res/values-en-rXC/strings.xml +++ b/core/res/res/values-en-rXC/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Untitled>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(No phone number)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Region preference"</string> <string name="search_language_hint" msgid="7004225294308793583">"Type language name"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggested"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Suggested languages"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Suggested regions"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"All languages"</string> <string name="region_picker_section_all" msgid="756441309928774155">"All regions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Search"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Learn more"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Enhanced notifications replaced Android Adaptive Notifications in Android 12. This feature shows suggested actions and replies, and organizes your notifications.\n\nEnhanced notifications can access notification content, including personal information like contact names and messages. This feature can also dismiss or respond to notifications, such as answering phone calls, and control Do Not Disturb."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Routine Mode info notification"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Battery may run out before usual charge"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Battery Saver activated to extend battery life"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Battery Saver turned on"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reducing battery usage to extend battery life"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Battery Saver"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Battery Saver turned off"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Phone has enough charge. Features no longer restricted."</string> diff --git a/core/res/res/values-es-rUS/strings.xml b/core/res/res/values-es-rUS/strings.xml index 5949b444f522..f67c65939f27 100644 --- a/core/res/res/values-es-rUS/strings.xml +++ b/core/res/res/values-es-rUS/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sin título>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(No hay número de teléfono)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferencia de región"</string> <string name="search_language_hint" msgid="7004225294308793583">"Nombre del idioma"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugeridos"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Idiomas sugeridos"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Regiones sugeridas"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Todos los idiomas"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Todas las regiones"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Búsqueda"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Más información"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Las notificaciones mejoradas reemplazaron a las notificaciones adaptables en Android 12. Esta función muestra respuestas y acciones sugeridas, y organiza tus notificaciones.\n\nLas notificaciones mejoradas pueden acceder a todo el contenido de notificaciones, lo que incluye información personal, como nombres de contactos y mensajes. También puede descartar o responder notificaciones (como contestar llamadas) y controlar la función No interrumpir."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificación de información del modo de Rutinas"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Es posible que la batería se agote antes de la carga habitual"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Se activó el Ahorro de batería para extender la duración de la batería"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Ahorro de batería activado"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reduciendo el uso de la batería para extender su duración"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Ahorro de batería"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Se desactivó el Ahorro de batería"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"El teléfono tiene suficiente carga. Ya no se restringen las funciones."</string> diff --git a/core/res/res/values-es/strings.xml b/core/res/res/values-es/strings.xml index c8c3804695a8..408d71d4c970 100644 --- a/core/res/res/values-es/strings.xml +++ b/core/res/res/values-es/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sin título>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Sin número de teléfono)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferencia de región"</string> <string name="search_language_hint" msgid="7004225294308793583">"Nombre de idioma"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugeridos"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Idiomas sugeridos"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Regiones sugeridas"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Todos los idiomas"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Todas las regiones"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Buscar"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Más información"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Las notificaciones mejoradas sustituyeron las notificaciones adaptativas en Android 12. Esta función te muestra acciones y respuestas sugeridas, y organiza tus notificaciones.\n\nLas notificaciones mejoradas pueden acceder al contenido de tus notificaciones, incluida información personal, como nombres de contactos y mensajes. También permiten descartar o responder a notificaciones; por ejemplo, es posible contestar llamadas telefónicas y controlar el modo No molestar."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificación sobre el modo rutina"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Quizás se agote la batería antes de lo habitual"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Se ha activado el modo Ahorro de batería para aumentar la duración de la batería"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Ahorro de batería"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Ahorro de batería desactivado"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"El teléfono tiene suficiente batería. Las funciones ya no están restringidas."</string> diff --git a/core/res/res/values-et/strings.xml b/core/res/res/values-et/strings.xml index 85aab3337b0c..cbfe44be67a4 100644 --- a/core/res/res/values-et/strings.xml +++ b/core/res/res/values-et/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Pealkirjata>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Telefoninumbrit pole)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Piirkonnaeelistus"</string> <string name="search_language_hint" msgid="7004225294308793583">"Sisestage keele nimi"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Soovitatud"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Soovitatud keeled"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Soovitatud piirkonnad"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Kõik keeled"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Kõik piirkonnad"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Otsing"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Lisateave"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Androidi versioonis 12 asendasid täiustatud märguanded Androidi kohanduvad märguanded. See funktsioon näitab soovitatud toiminguid ja vastuseid ning korrastab teie märguandeid.\n\nTäiustatud märguanded pääsevad juurde märguande sisule, sh isiklikule teabele, nagu kontaktide nimed ja sõnumid. Samuti saab selle funktsiooni abil märguannetest loobuda või neile vastata (nt vastata telefonikõnedele ja juhtida funktsiooni Mitte segada)."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Rutiinirežiimi teabe märguanne"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Aku võib enne tavapärast laadimist tühjaks saada"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Akusäästja aktiveeriti aku tööea pikendamiseks"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Akusäästja"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Akusäästja on välja lülitatud"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefon on piisavalt laetud. Funktsioonid ei ole enam piiratud."</string> diff --git a/core/res/res/values-eu/strings.xml b/core/res/res/values-eu/strings.xml index 9c08bcb2306f..4d955bb47d2c 100644 --- a/core/res/res/values-eu/strings.xml +++ b/core/res/res/values-eu/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Izengabea>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Ez dago telefono-zenbakirik)"</string> @@ -307,7 +302,7 @@ <string name="permgroupdesc_sms" msgid="5726462398070064542">"bidali eta ikusi SMS mezuak"</string> <string name="permgrouplab_storage" msgid="17339216290379241">"Fitxategiak"</string> <string name="permgroupdesc_storage" msgid="5378659041354582769">"gailuko fitxategiak atzitu"</string> - <string name="permgrouplab_readMediaAural" msgid="1858331312624942053">"musika eta audioa"</string> + <string name="permgrouplab_readMediaAural" msgid="1858331312624942053">"Musika eta audioa"</string> <string name="permgroupdesc_readMediaAural" msgid="7565467343667089595">"atzitu gailuko musika eta audioak"</string> <string name="permgrouplab_readMediaVisual" msgid="4724874717811908660">"Argazkiak eta bideoak"</string> <string name="permgroupdesc_readMediaVisual" msgid="4080463241903508688">"atzitu gailuko argazkiak eta bideoak"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Lurralde-hobespena"</string> <string name="search_language_hint" msgid="7004225294308793583">"Adierazi hizkuntza"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Iradokitakoak"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Iradokitako hizkuntzak"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Iradokitako lurraldeak"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Hizkuntza guztiak"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Lurralde guztiak"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Bilaketa"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Lortu informazio gehiago"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12-n, jakinarazpen hobetuek ordeztu dituzte Android-eko jakinarazpen egokituak. Eginbide horrek, iradokitako ekintzak eta erantzunak erakusten, eta zure jakinarazpenak antolatzen ditu.\n\nJakinarazpen hobetuek jakinarazpenen eduki osoa atzi dezakete, informazio pertsonala barne (esaterako, kontaktuen izenak eta mezuak). Halaber, eginbideak jakinarazpenak baztertu, edo haiei erantzun diezaieke; adibidez, telefono-deiei erantzun diezaieke, eta ez molestatzeko modua kontrolatu."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Ohitura moduaren informazio-jakinarazpena"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Baliteke bateria ohi baino lehenago agortzea"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Bateria-aurrezlea aktibatuta dago bateriaren iraupena luzatzeko"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Bateria-aurrezlea aktibatu da"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Bateria-erabilera murrizten hasi da haren iraupena luzatzeko"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Bateria-aurrezlea"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Desaktibatu egin da bateria-aurrezlea"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Behar adina bateria dauka telefonoak. Jada ez dago eginbiderik murriztuta."</string> diff --git a/core/res/res/values-fa/strings.xml b/core/res/res/values-fa/strings.xml index fad957ae74d5..d15780cf01d4 100644 --- a/core/res/res/values-fa/strings.xml +++ b/core/res/res/values-fa/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"بایت"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"کیلوبایت"</string> - <string name="megabyteShort" msgid="6649361267635823443">"مگابایت"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"گیگابایت"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ترابایت"</string> - <string name="petabyteShort" msgid="5651571254228534832">"پتابایت"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<بدون عنوان>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(بدون شماره تلفن)"</string> @@ -644,7 +639,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"تلفن را بهسمت چپ ببرید"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"تلفن را بهسمت راست ببرید"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"لطفاً مستقیم به دستگاه نگه کنید."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"چهرهتان دیده نمیشود. تلفن را همسطح چشمانتان نگه دارید."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"چهره دیده نمیشود. تلفن را همسطح چشمانتان نگه دارید."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"حرکت خیلی زیاد است. تلفن را ثابت نگهدارید."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"لطفاً چهرهتان را مجدداً ثبت کنید."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"چهره شناسایی نشد. دوباره امتحان کنید."</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"اولویتهای منطقه"</string> <string name="search_language_hint" msgid="7004225294308793583">"نام زبان را تایپ کنید"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"پیشنهادی"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"زبانهای پیشنهادی"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"مناطق پیشنهادی"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"همه زبانها"</string> <string name="region_picker_section_all" msgid="756441309928774155">"همه منطقهها"</string> <string name="locale_search_menu" msgid="6258090710176422934">"جستجو"</string> @@ -2044,7 +2041,7 @@ <string name="harmful_app_warning_title" msgid="8794823880881113856">"برنامه مضر شناسایی شد"</string> <string name="log_access_confirmation_title" msgid="2343578467290592708">"به <xliff:g id="LOG_ACCESS_APP_NAME">%s</xliff:g> اجازه میدهید به همه گزارشهای دستگاه دسترسی داشته باشد؟"</string> <string name="log_access_confirmation_allow" msgid="5302517782599389507">"مجاز کردن دسترسی یکباره"</string> - <string name="log_access_confirmation_deny" msgid="7685790957455099845">"مجاز نیست"</string> + <string name="log_access_confirmation_deny" msgid="7685790957455099845">"اجازه ندادن"</string> <string name="log_access_confirmation_body" msgid="6581985716241928135">"گزارشهای دستگاه آنچه را در دستگاهتان رخ میدهد ثبت میکند. برنامهها میتوانند از این گزارشها برای پیدا کردن مشکلات و رفع آنها استفاده کنند.\n\nبرخیاز گزارشها ممکن است حاوی اطلاعات حساس باشند، بنابراین فقط به برنامههای مورداعتمادتان اجازه دسترسی به همه گزارشهای دستگاه را بدهید. \n\nاگر به این برنامه اجازه ندهید به همه گزارشهای دستگاه دسترسی داشته باشد، همچنان میتواند به گزارشهای خودش دسترسی داشته باشد. سازنده دستگاه نیز ممکن است همچنان بتواند به برخیاز گزارشها یا اطلاعات دستگاهتان دسترسی داشته باشد. بیشتر بدانید"</string> <string name="log_access_do_not_show_again" msgid="1058690599083091552">"دوباره نشان داده نشود"</string> <string name="slices_permission_request" msgid="3677129866636153406">"<xliff:g id="APP_0">%1$s</xliff:g> میخواهد تکههای <xliff:g id="APP_2">%2$s</xliff:g> را نشان دهد"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"بیشتر بدانید"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"در Android نسخه ۱۲، اعلانهای بهبودیافته جایگزین «اعلانهای تطبیقی» شده است. این ویژگی پاسخها و کنشهای پیشنهادی را نمایش میدهد و اعلانهایتان را سازماندهی میکند.\n\nاعلانهای بهبودیافته میتوانند به محتوای اعلان، ازجمله اطلاعات شخصی مثل نامها و پیامهای مخاطبین دسترسی داشته باشند. این ویژگی همچنین میتواند اعلانها را رد کند یا به آنها پاسخ دهد؛ مثلاً پاسخ به تماسهای تلفنی و کنترل کردن «مزاحم نشوید»."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"اعلان اطلاعات حالت روال معمول"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ممکن است شارژ باتری قبل از شارژ معمول تمام شود"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"جهت افزایش عمر باتری، «بهینهسازی باتری» فعال شد"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"بهینهسازی باتری"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"«بهینهسازی باتری» خاموش شد"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"تلفن بهاندازه کافی شارژ دارد. ویژگیها دیگر محدود نمیشوند."</string> diff --git a/core/res/res/values-fi/strings.xml b/core/res/res/values-fi/strings.xml index 6d2424f10a7c..33b43ba54fd0 100644 --- a/core/res/res/values-fi/strings.xml +++ b/core/res/res/values-fi/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"t"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kt"</string> - <string name="megabyteShort" msgid="6649361267635823443">"Mt"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"Gt"</string> - <string name="terabyteShort" msgid="1822367128583886496">"Tt"</string> - <string name="petabyteShort" msgid="5651571254228534832">"Pt"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Nimetön>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Ei puhelinnumeroa)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Alueasetus"</string> <string name="search_language_hint" msgid="7004225294308793583">"Anna kielen nimi"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Ehdotukset"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Kieliehdotukset"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Alue-ehdotukset"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Kaikki kielet"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Kaikki alueet"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Haku"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Lue lisää"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Parannetut ilmoitukset korvasivat Androidin mukautuvat ilmoitukset Android 12:ssa. Tämä ominaisuus näyttää toiminto- ja vastausehdotuksia ja järjestää ilmoituksesi.\n\nParannetuilla ilmoituksilla on pääsy kaikkeen ilmoitussisältöön, myös henkilökohtaisiin tietoihin (esim. kontaktien nimet ja viestit). Ominaisuus voi myös ohittaa ilmoituksia tai vastata niihin, esim. vastata puheluihin ja ohjata Älä häiritse ‑tilaa."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Ohjelmatilan tietoilmoitus"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Akku saattaa loppua ennen normaalia latausaikaa"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Virransäästö otettu käyttöön akunkeston pidentämiseksi"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Virransäästö"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Virransäästö laitettiin pois päältä"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Puhelimessa on tarpeeksi virtaa. Ominaisuuksia ei enää rajoiteta."</string> diff --git a/core/res/res/values-fr-rCA/strings.xml b/core/res/res/values-fr-rCA/strings.xml index e709da86c71b..23b8f0453452 100644 --- a/core/res/res/values-fr-rCA/strings.xml +++ b/core/res/res/values-fr-rCA/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"o"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"ko"</string> - <string name="megabyteShort" msgid="6649361267635823443">"Mo"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"Go"</string> - <string name="terabyteShort" msgid="1822367128583886496">"To"</string> - <string name="petabyteShort" msgid="5651571254228534832">"Po"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sans_titre>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Aucun numéro de téléphone)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Préférences régionales"</string> <string name="search_language_hint" msgid="7004225294308793583">"Entrez la langue"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggestions"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Langues suggérées"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Régions suggérées"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Toutes les langues"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Toutes les régions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Rechercher"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"En savoir plus"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Les notifications améliorées ont remplacé les notifications adaptatives Android sous Android 12. Cette fonctionnalité vous présente des suggestions d\'actions et de réponses, et organise vos notifications.\n\nLes notifications améliorées peuvent accéder au contenu de toutes les notifications, y compris les renseignements personnels comme le nom des contacts et les messages. Cette fonctionnalité peut aussi fermer des notifications ou interagir avec elles, comme répondre aux appels téléphoniques et gérer le mode Ne pas déranger."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notification d\'information du mode Routine"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"La pile pourrait s\'épuiser avant la charge habituelle"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Le mode Économiseur de pile est activé afin de prolonger l\'autonomie"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Économiseur de pile"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Le mode Économiseur de pile est désactivé"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Le téléphone est suffisamment chargé. Ces fonctionnalités ne sont plus restreintes."</string> diff --git a/core/res/res/values-fr/strings.xml b/core/res/res/values-fr/strings.xml index 409d69561356..e14d5064ff6c 100644 --- a/core/res/res/values-fr/strings.xml +++ b/core/res/res/values-fr/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"octet(s)"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"ko"</string> - <string name="megabyteShort" msgid="6649361267635823443">"Mo"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"Go"</string> - <string name="terabyteShort" msgid="1822367128583886496">"To"</string> - <string name="petabyteShort" msgid="5651571254228534832">"Po"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sans nom>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Aucun numéro de téléphone)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Préférences régionales"</string> <string name="search_language_hint" msgid="7004225294308793583">"Saisissez la langue"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggestions"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Langues suggérées"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Régions suggérées"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Toutes les langues"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Toutes les régions"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Rechercher"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"En savoir plus"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Les notifications améliorées remplacent les notifications intelligentes dans Android 12. Cette fonctionnalité affiche les suggestions d\'actions et de réponses, et organise vos notifications.\n\nElle a accès au contenu des notifications, y compris aux informations personnelles tels que les noms des contacts et les messages. Elle peut aussi fermer les notifications ou effectuer des actions comme répondre à un appel téléphonique et contrôler le mode Ne pas déranger."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notification d\'information du mode Routine"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Vous risquez d\'être à court de batterie plus tôt que prévu"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Économiseur de batterie activé pour prolonger l\'autonomie"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Économiseur de batterie"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Économiseur de batterie désactivé"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Téléphone suffisamment chargé. Les fonctionnalités ne sont plus restreintes."</string> diff --git a/core/res/res/values-gl/strings.xml b/core/res/res/values-gl/strings.xml index 9645208a15a7..72f0dcc21ac5 100644 --- a/core/res/res/values-gl/strings.xml +++ b/core/res/res/values-gl/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sen título>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Sen número de teléfono)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferencia de rexión"</string> <string name="search_language_hint" msgid="7004225294308793583">"Escribe o nome do idioma"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suxeridos"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Idiomas suxeridos"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Rexións suxeridas"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Todos os idiomas"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Todas as rexións"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Buscar"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Máis información"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"En Android 12, as notificacións melloradas substitúen as notificacións intelixentes. Esta función ofréceche suxestións de accións e respostas, ademais de organizar as notificacións.\n\nEste servizo pode acceder ao contido das notificacións, mesmo á información persoal, como os nomes dos contactos e as mensaxes. Ademais, esta función pode ignorar ou responder as notificacións (por exemplo, coller chamadas telefónicas e controlar o modo Non molestar)."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificación da información do modo de rutina"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"A batería pode esgotarse antes do habitual"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Para ampliar a duración da batería activouse a función Aforro de batería"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Aforro de batería"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Desactivouse a función Aforro de batería."</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"O teléfono non ten suficiente batería. Xa non se restrinxirán as funcións."</string> diff --git a/core/res/res/values-gu/strings.xml b/core/res/res/values-gu/strings.xml index 889ef9cd6613..f1f0b86e744f 100644 --- a/core/res/res/values-gu/strings.xml +++ b/core/res/res/values-gu/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<અનામાંકિત>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(કોઈ ફોન નંબર નથી)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"પ્રદેશ પસંદગી"</string> <string name="search_language_hint" msgid="7004225294308793583">"ભાષાનું નામ ટાઇપ કરો"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"સૂચવેલી ભાષા"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"સૂચવેલી ભાષાઓ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"સૂચવેલા પ્રદેશો"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"બધી ભાષાઓ"</string> <string name="region_picker_section_all" msgid="756441309928774155">"તમામ પ્રદેશ"</string> <string name="locale_search_menu" msgid="6258090710176422934">"શોધ"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"વધુ જાણો"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12માં Android માટે અનુકૂળ નોટિફિકેશનને બદલે વધુ સારા નોટિફિકેશન છે. આ સુવિધા સૂચિત ક્રિયાઓ અને જવાબો બતાવે છે તેમજ તમારા નોટિફિકેશનની યોગ્ય ગોઠવણી કરે છે.\n\nવધુ સારા નોટિફિકેશન સંપર્કોના નામ અને સંદેશા જેવી વ્યક્તિગત માહિતી સહિત નોટિફિકેશનનું બધું કન્ટેન્ટ ઍક્સેસ કરી શકે છે. આ સુવિધા ફોન કૉલના જવાબ આપવા કે \'ખલેલ પાડશો નહીં\'નું નિયંત્રણ કરવા જેવા નોટિફિકેશન છોડવાની કે તેનો જવાબ આપવાની ક્રિયા પણ કરી શકે છે."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"રૂટિન મોડની માહિતીનું નોટિફિકેશન"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"સામાન્ય રીતે ચાર્જ કરવાના સમય પહેલાં બૅટરી સમાપ્ત થઈ શકે છે"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"બૅટરી આવરદા વધારવા માટે બૅટરી સેવર ચાલુ કર્યું"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"બૅટરી સેવરની સુવિધા ચાલુ કરી છે"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"બૅટરીની આવરદા વધારવા માટે બૅટરીનો વપરાશ ઘટાડી રહ્યાં છીએ"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"બૅટરી સેવર"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"બૅટરી સેવર બંધ કર્યું"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ફોનમાં પૂરતો ચાર્જ છે. સુવિધાઓ હવે મર્યાદિત નથી."</string> diff --git a/core/res/res/values-hi/strings.xml b/core/res/res/values-hi/strings.xml index 8066104d051d..6d90d53c528b 100644 --- a/core/res/res/values-hi/strings.xml +++ b/core/res/res/values-hi/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"केबी"</string> - <string name="megabyteShort" msgid="6649361267635823443">"एमबी"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"जीबी"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<शीर्षक-रहित>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(कोई फ़ोन नंबर नहीं)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"क्षेत्र प्राथमिकता"</string> <string name="search_language_hint" msgid="7004225294308793583">"भाषा का नाम लिखें"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"दिए गए सुझाव"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"सुझाई गई भाषाएं"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"सुझाए गए इलाके"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"सभी भाषाएं"</string> <string name="region_picker_section_all" msgid="756441309928774155">"सभी क्षेत्र"</string> <string name="locale_search_menu" msgid="6258090710176422934">"खोजें"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ज़्यादा जानें"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 में, ज़रूरत के हिसाब से सूचनाएं पाने की सुविधा की जगह अब \'बेहतर सूचनाएं\' सुविधा काम करेगी. यह सुविधा आपको कार्रवाइयों और जवाबों के सुझाव दिखाती है. साथ ही, आपके डिवाइस पर मिलने वाली सूचनाओं को व्यवस्थित करती है.\n\n\'बेहतर सूचनाएं\' सुविधा, डिवाइस पर मिलने वाली सूचनाओं का कॉन्टेंट ऐक्सेस कर सकती है. इसमें आपकी निजी जानकारी, जैसे कि संपर्कों के नाम और मैसेज शामिल हैं. यह सुविधा, सूचनाओं को खारिज कर सकती है या उनका जवाब भी दे सकती है, जैसे कि फ़ोन कॉल का जवाब देना और \'परेशान न करें\' को कंट्रोल करना."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"रूटीन मोड जानकारी की सूचना"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"बैटरी आम तौर पर जितने समय चलती है, उससे पहले खत्म हो सकती है"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"बैटरी लाइफ़ बढ़ाने के लिए \'बैटरी सेवर\' चालू हो गया है"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"बैटरी सेवर चालू है"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"इससे बैटरी कम खर्च होती है और बैटरी लाइफ़ बढ़ती है"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"बैटरी सेवर"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"बैटरी सेवर बंद कर दिया गया है"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"फ़ोन में काफ़ी बैटरी बची है. सुविधाओं पर अब पाबंदी नहीं है."</string> diff --git a/core/res/res/values-hr/strings.xml b/core/res/res/values-hr/strings.xml index b7fbf2276e39..63782e8bf446 100644 --- a/core/res/res/values-hr/strings.xml +++ b/core/res/res/values-hr/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Bez naslova>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nema telefonskog broja)"</string> @@ -651,7 +646,7 @@ <string name="face_acquired_too_different" msgid="2520389515612972889">"Prepoznavanje lica nije uspjelo. Pokušajte ponovo."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Malo pomaknite glavu"</string> <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Gledajte izravnije prema telefonu"</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Gledajte izravnije prema telefonu"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Gledajte ravno u telefon"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Gledajte izravnije prema telefonu"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Uklonite sve što vam zakriva lice."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Očistite vrh zaslona, uključujući crnu traku"</string> @@ -1925,6 +1920,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Postavke regije"</string> <string name="search_language_hint" msgid="7004225294308793583">"Unesite naziv jezika"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Predloženo"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Predloženi jezici"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Predložene regije"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Svi jezici"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Sve regije"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Pretraži"</string> @@ -2079,8 +2076,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Saznajte više"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"U Androidu 12 poboljšane obavijesti zamjenjuju prilagodljive obavijesti za Android. Ta značajka prikazuje predložene radnje i odgovore te organizira vaše obavijesti.\n\nPoboljšane obavijesti mogu pristupati sadržaju obavijesti, uključujući osobne podatke kao što su imena kontakata i poruke. Ta značajka može i odbacivati obavijesti ili poduzimati radnje u vezi s njima, na primjer može odgovarati na telefonske pozive i upravljati značajkom Ne uznemiravaj."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Obavještavanje o informacijama u Rutinskom načinu rada"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Baterija se može isprazniti prije uobičajenog vremena punjenja"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Štednja baterije aktivirana je kako bi se produljilo trajanje baterije"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Uključena je štednja baterije"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Smanjuje se potrošnja baterije radi produženja njezinog trajanja"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Štednja baterije"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Isključena je Štednja baterije"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Baterija mobilnog telefona dovoljno je napunjena. Značajke više nisu ograničene."</string> diff --git a/core/res/res/values-hu/strings.xml b/core/res/res/values-hu/strings.xml index 3cc4b63d70d4..ed656ac240ce 100644 --- a/core/res/res/values-hu/strings.xml +++ b/core/res/res/values-hu/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Névtelen>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nincs telefonszám)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Régió beállítása"</string> <string name="search_language_hint" msgid="7004225294308793583">"Adja meg a nyelvet"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Javasolt"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Javasolt nyelvek"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Javasolt régiók"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Minden nyelv"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Minden régió"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Keresés"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"További információ"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"A bővített értesítések felváltják az androidos alkalmazkodó értesítéseket az Android 12-es verziójában. Ez a funkció javasolt műveleteket és válaszokat mutat, és rendszerezi az értesítéseket.\n\nA bővített értesítések minden értesítéstartalmat olvashatnak (így a személyes adatokat, mint például a névjegyek nevét és az üzeneteket is). Ez a funkció emellett elvetheti az értesítéseket, valamint reagálhat rájuk, például felveheti a telefonhívásokat, és vezérelheti a Ne zavarjanak módot."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Információs értesítés a rutinmódról"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Előfordulhat, hogy az akkumulátor lemerül a szokásos töltési időszak előtt"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Akkumulátorkímélő mód aktiválva az akkumulátor üzemidejének növelése érdekében"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Akkumulátorkímélő mód bekapcsolva"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Akkumulátorhasználat csökkentése a hosszabb akkumulátor-élettartam érdekében"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Akkumulátorkímélő mód"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Akkumulátorkímélő mód kikapcsolva"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"A telefon töltöttsége elegendő. A funkciók használata már nincs korlátozva."</string> diff --git a/core/res/res/values-hy/strings.xml b/core/res/res/values-hy/strings.xml index c9cf7a7560bb..282a212ed822 100644 --- a/core/res/res/values-hy/strings.xml +++ b/core/res/res/values-hy/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"Բ"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"կԲ"</string> - <string name="megabyteShort" msgid="6649361267635823443">"ՄԲ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ԳԲ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ՏԲ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"Պբ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Անանուն>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Հեռախոսահամար չկա)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Նախընտրելի տարածաշրջան"</string> <string name="search_language_hint" msgid="7004225294308793583">"Մուտքագրեք լեզուն"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Առաջարկվող"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Առաջարկվող լեզուներ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Առաջարկվող տարածաշրջաններ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Բոլոր լեզուները"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Բոլոր տարածաշրջանները"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Որոնում"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Իմանալ ավելին"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12-ում ընդլայնված ծանուցումները փոխարինում են Android-ի հարմարվող ծանուցումներին։ Այս գործառույթը դասավորում է ձեր բոլոր ծանուցումները և առաջարկում գործողություններ և պատասխաններ։\n\nԸնդլայնված ծանուցումներին հասանելի է բոլոր ծանուցումների պարունակությունը, ներառյալ անձնական տվյալները, օրինակ՝ կոնտակտների անուններն ու հաղորդագրությունները։ Այս գործառույթը կարող է նաև փակել ծանուցումները կամ սեղմել դրանցում առկա կոճակները, այդ թվում՝ պատասխանել հեռախոսազանգերի և կառավարել «Չանհանգստացնել» ռեժիմը։"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Ծանուցում լիցքավորման մասին"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Մարտկոցը կարող է սովորականից շուտ սպառվել"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Մարտկոցի կյանքը երկարացնելու համար ակտիվացվել է մարտկոցի տնտեսման ռեժիմը"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Մարտկոցի տնտեսում"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Մարտկոցի տնտեսումն անջատված է"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Հեռախոսի լիցքը բավարար է։ Գործառույթներն այլևս չեն սահմանափակվում։"</string> diff --git a/core/res/res/values-in/strings.xml b/core/res/res/values-in/strings.xml index b4c864daf532..a5fa54dad127 100644 --- a/core/res/res/values-in/strings.xml +++ b/core/res/res/values-in/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Tanpa judul>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Tidak ada nomor telepon)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferensi wilayah"</string> <string name="search_language_hint" msgid="7004225294308793583">"Ketik nama bahasa"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Disarankan"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Bahasa yang disarankan"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Wilayah yang disarankan"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Semua bahasa"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Semua wilayah"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Telusuri"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Pelajari lebih lanjut"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Notifikasi yang ditingkatkan menggantikan Notifikasi Adaptif Android di Android 12. Fitur ini menunjukkan tindakan dan balasan yang disarankan, serta mengatur notifikasi.\n\nNotifikasi yang ditingkatkan dapat mengakses konten notifikasi, termasuk informasi pribadi seperti nama kontak dan pesan. Fitur ini juga dapat menutup atau merespons notifikasi, seperti menjawab panggilan telepon dan mengontrol fitur Jangan Ganggu."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notifikasi info Mode Rutinitas"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Baterai mungkin habis sebelum pengisian daya biasanya"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Penghemat Baterai diaktifkan untuk memperpanjang masa pakai baterai"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Penghemat Baterai"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Penghemat Baterai dinonaktifkan"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Baterai ponsel cukup terisi. Fitur tidak lagi dibatasi."</string> diff --git a/core/res/res/values-is/strings.xml b/core/res/res/values-is/strings.xml index 79ddc79a1219..ff29303cd02b 100644 --- a/core/res/res/values-is/strings.xml +++ b/core/res/res/values-is/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Ónefnt>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Ekkert símanúmer)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Svæðisval"</string> <string name="search_language_hint" msgid="7004225294308793583">"Sláðu inn heiti tungumáls"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Tillögur"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Tillögur að tungumálum"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Tillögur að svæðum"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Öll tungumál"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Öll svæði"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Leita"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Nánar"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Auknar tilkynningar hafa leyst breytilegar tilkynningar í Android af hólmi í Android 12. Eiginleikinn birtir tillögur að aðgerðum og svörum og flokkar tilkynningar.\n\nAuknar tilkynningar hafa aðgang að efni tilkynninga, þ. á m. persónuupplýsingum á borð við nöfn tengiliða og skilaboð. Eiginleikinn getur einnig hunsað eða svarað tilkynningum, til dæmis svarað símtölum og stjórnað „Ónáðið ekki“."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Upplýsingatilkynning aðgerðastillingar"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Rafhlaðan kann að tæmast áður en hún kemst í hleðslu"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Kveikt á rafhlöðusparnaði til að lengja endingu rafhlöðunnar"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Rafhlöðusparnaður"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Slökkt á rafhlöðusparnaði"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Síminn er með næga hleðslu. Eiginleikar eru ekki lengur takmarkaðir."</string> diff --git a/core/res/res/values-it/strings.xml b/core/res/res/values-it/strings.xml index 0431b50daaea..89367e1ac259 100644 --- a/core/res/res/values-it/strings.xml +++ b/core/res/res/values-it/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Senza nome>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nessun numero di telefono)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Area geografica preferita"</string> <string name="search_language_hint" msgid="7004225294308793583">"Digita nome lingua"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Suggerite"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Lingue suggerite"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Aree geografiche consigliate"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Tutte le lingue"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Tutte le aree geografiche"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Cerca"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Scopri di più"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Le notifiche adattive Android sono state sostituite dalle notifiche avanzate in Android 12. Questa funzionalità mostra risposte e azioni suggerite e organizza le tue notifiche.\n\nLe notifiche avanzate possono accedere ai contenuti di una notifica, incluse le informazioni personali, come i nomi dei contatti e i messaggi. Questa funzionalità può anche ignorare le notifiche o rispondervi, ad esempio accettando le telefonate, e controllare la modalità Non disturbare."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notifica di informazioni sulla modalità Routine"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"La batteria potrebbe esaurirsi prima della ricarica abituale"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Risparmio energetico attivo per far durare di più la batteria"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Risparmio energetico attivato"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Riduzione dell\'utilizzo di batteria per estenderne la durata"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Risparmio energetico"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Risparmio energetico disattivato"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Il telefono ha carica sufficiente. Funzionalità non più limitate."</string> diff --git a/core/res/res/values-iw/strings.xml b/core/res/res/values-iw/strings.xml index b2e0802b7e09..bbc258193eae 100644 --- a/core/res/res/values-iw/strings.xml +++ b/core/res/res/values-iw/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">">ללא כותרת<"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(אין מספר טלפון)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"העדפת אזור"</string> <string name="search_language_hint" msgid="7004225294308793583">"יש להקליד את שם השפה"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"הצעות"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"השפות המוצעות"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"האזורים המוצעים"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"כל השפות"</string> <string name="region_picker_section_all" msgid="756441309928774155">"כל האזורים"</string> <string name="locale_search_menu" msgid="6258090710176422934">"חיפוש"</string> @@ -2080,8 +2077,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"מידע נוסף"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"התכונה \'התראות משופרות\' החליפה את \'התראות מותאמות ל-Android\' ב-Android 12. התכונה הזו מציגה הצעות לפעולות ולתשובות ומארגנת את ההתראות שלך.\n\nל\'התראות משופרות\' יש גישה לתוכן של התראות, כולל מידע אישי כמו שמות אנשי קשר והודעות. התכונה הזו יכולה גם לסגור התראות או להגיב עליהן (למשל לענות לשיחות טלפון) ולשלוט בתכונה \'נא לא להפריע\'."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"התראת מידע לגבי מצב שגרתי"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"הסוללה עלולה להתרוקן לפני המועד הרגיל של הטעינה"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"תכונת החיסכון בסוללה הופעלה כדי להאריך את חיי הסוללה"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"התכונה \'חיסכון בסוללה\' הופעלה"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"הפחתת השימוש בסוללה תאריך את חיי הסוללה"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"חיסכון בסוללה"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"מצב \'חיסכון בסוללה\' כבוי"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"הטלפון טעון מספיק. התכונות כבר לא מוגבלות."</string> diff --git a/core/res/res/values-ja/strings.xml b/core/res/res/values-ja/strings.xml index 8fb5b31988ee..60d0b91f90f7 100644 --- a/core/res/res/values-ja/strings.xml +++ b/core/res/res/values-ja/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<新規>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(電話番号なし)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"地域設定"</string> <string name="search_language_hint" msgid="7004225294308793583">"言語名を入力"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"言語の候補"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"言語の候補"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"地域の候補"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"すべての言語"</string> <string name="region_picker_section_all" msgid="756441309928774155">"すべての地域"</string> <string name="locale_search_menu" msgid="6258090710176422934">"検索"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"詳細"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 では Android 通知の自動調整が拡張通知に切り替えられました。この機能により、操作や返信の候補が提示され、通知が整理されます。\n\n拡張通知は通知コンテンツにアクセスできます。これには、連絡先の名前などの個人情報やメッセージも含まれます。また、この機能は、通知を非表示にしたり通知に応答したりすることもできます。たとえば、電話に出ることやサイレント モードを管理することができます。"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ルーティン モード情報の通知"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"通常の充電を行う前に電池が切れる可能性があります"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"電池を長持ちさせるため、バッテリー セーバーが有効になりました"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"バッテリー セーバーが ON になりました"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"バッテリー使用量を減らし、バッテリー駆動時間を延ばします"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"バッテリー セーバー"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"バッテリー セーバーが OFF になりました"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"スマートフォンが十分に充電されました。機能は制限されなくなりました。"</string> diff --git a/core/res/res/values-ka/strings.xml b/core/res/res/values-ka/strings.xml index 9aeb034bc305..997460696dcd 100644 --- a/core/res/res/values-ka/strings.xml +++ b/core/res/res/values-ka/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"ბაიტი"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"კბაიტი"</string> - <string name="megabyteShort" msgid="6649361267635823443">"მბაიტი"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"გბაიტი"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ტბაიტი"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"უსათაურო"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ტელეფონის ნომრის გარეშე)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"რეგიონის პარამეტრები"</string> <string name="search_language_hint" msgid="7004225294308793583">"აკრიფეთ ენის სახელი"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"რეკომენდებული"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"შემოთავაზებული ენები"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"შეთავაზებული რეგიონები"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ყველა ენა"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ყველა რეგიონი"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ძიება"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"შეიტყვეთ მეტი"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"გაფართოებულმა შეტყობინებებმა ჩაანაცვლა Android-ის ადაპტაციური შეტყობინებების ფუნქცია Android 12-ში. ეს ფუნქცია გაჩვენებთ შემოთავაზებულ მოქმედებებს და პასუხებს, ამასთანავე კი ახდენს თქვენი შეტყობინებების ორგანიზებას.\n\nგაფართოებულ შეტყობინებებს შეუძლია ყველა შეტყობინების კონტენტზე, მათ შორის, ისეთ პერსონალურ ინფორმაციაზე წვდომა, როგორიცაა კონტაქტების სახელები და შეტყობინებები. ამ ფუნქციას ასევე შეუძლია შეტყობინებათა დახურვა ან მათზე პასუხის გაცემა, მაგალითად, სატელეფონო ზარებზე პასუხი და „არ შემაწუხოთ“ რეჟიმის მართვა."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"რუტინის რეჟიმის საინფორმაციო შეტყობინება"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ბატარეა შეიძლება დაჯდეს დატენის ჩვეულ დრომდე"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ბატარეის დამზოგი გააქტიურდა ბატარეის მუშაობის გასახანგრძლივლებლად"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ბატარეის დამზოგველი ჩართულია"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ბატარეის მოხმარების შემცირება ბატარეის მუშაობის გახანგრძლივების მიზნით"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ბატარეის დამზოგი"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ბატარეის დამზოგი გამორთულია"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ტელეფონი საკმარისად არის დატენილი. ფუნქციები შეზღუდული აღარ არის."</string> diff --git a/core/res/res/values-kk/strings.xml b/core/res/res/values-kk/strings.xml index c966b958e4b8..3545559f24f3 100644 --- a/core/res/res/values-kk/strings.xml +++ b/core/res/res/values-kk/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"Б"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"КБ"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MБ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ГБ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TБ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"ПБ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Атаусыз>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Телефон нөмірі жоқ)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Аймақ параметрі"</string> <string name="search_language_hint" msgid="7004225294308793583">"Тіл атауын теріңіз"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Ұсынылған"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Ұсынылған тілдер"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Ұсынылған аймақтар"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Барлық тілдер"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Барлық аймақтар"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Іздеу"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Толығырақ"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 жүйесінде \"Бейімделетін хабарландырулар\" функциясын \"Кеңейтілген хабарландырулар\" алмастырды. Бұл функция ұсынылған әрекеттер мен жауаптарды көрсетіп, хабарландыруларыңызды ретке келтіреді.\n\nОл хабарландыру мазмұнын, соның ішінде жеке ақпаратыңызды (мысалы, контакт аттары мен хабарларды) пайдалана алады. Сондай-ақ бұл функция арқылы хабарландыруларды жабуға немесе оларға жауап беруге (мысалы, телефон қоңырауларына жауап беруге және Мазаламау режимін басқаруға) болады."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Режим туралы хабарландыру"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Батарея заряды азаюы мүмкін"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Батарея ұзаққа жетуі үшін, Батареяны үнемдеу режимі іске қосылды"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Батареяны үнемдеу режимі"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Батареяны үнемдеу режимі өшірілді"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Телефонның заряды жеткілікті. Функцияларға енді шектеу қойылмайды."</string> diff --git a/core/res/res/values-km/strings.xml b/core/res/res/values-km/strings.xml index 6c1163fe1b85..2da5ac06a618 100644 --- a/core/res/res/values-km/strings.xml +++ b/core/res/res/values-km/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"តេរ៉ាបៃ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<គ្មានចំណងជើង>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(គ្មានលេខទូរស័ព្ទ)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ចំណូលចិត្តតំបន់"</string> <string name="search_language_hint" msgid="7004225294308793583">"វាយបញ្ចូលឈ្មោះភាសា"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"បានណែនាំ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"ភាសាដែលបានណែនាំ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"តំបន់ដែលបានណែនាំ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ភាសាទាំងអស់"</string> <string name="region_picker_section_all" msgid="756441309928774155">"តំបន់ទាំងអស់"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ស្វែងរក"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ស្វែងយល់បន្ថែម"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"ការជូនដំណឹងប្រសើរជាងមុនបានជំនួសការជូនដំណឹងដែលមានភាពបត់បែន Android នៅក្នុង Android 12។ មុខងារនេះបង្ហាញការឆ្លើយតប និងសកម្មភាពដែលបានណែនាំ ព្រមទាំងរៀបចំការជូនដំណឹងរបស់អ្នក។\n\nការជូនដំណឹងប្រសើរជាងមុនអាចចូលប្រើខ្លឹមសារនៃការជូនដំណឹង រួមទាំងព័ត៌មានផ្ទាល់ខ្លួនដូចជា ឈ្មោះទំនាក់ទំនង និងសារជាដើម។ មុខងារនេះក៏អាចច្រានចោល ឬឆ្លើយតបនឹងការជូនដំណឹងដូចជា ការទទួលការហៅទូរសព្ទ និងគ្រប់គ្រងមុខងារកុំរំខានផងដែរ។"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ការជូនដំណឹងព័ត៌មានរបស់មុខងារទម្លាប់"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ថ្មអាចនឹងអស់ មុនពេលសាកថ្មធម្មតា"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"បានបើកដំណើរការមុខងារសន្សំថ្ម ដើម្បីបង្កើនកម្រិតថាមពលថ្ម"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"បានបើកមុខងារសន្សំថ្ម"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ការកាត់បន្ថយការប្រើប្រាស់ថ្ម ដើម្បីបង្កើនកម្រិតថាមពលថ្ម"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"មុខងារសន្សំថ្ម"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"មុខងារសន្សំថ្មត្រូវបានបិទ"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ទូរសព្ទមានកម្រិតថ្មគ្រប់គ្រាន់។ មុខងារផ្សេងៗមិនត្រូវបានរឹតបន្តឹងទៀតទេ។"</string> diff --git a/core/res/res/values-kn/strings.xml b/core/res/res/values-kn/strings.xml index 8d8d792ce008..4b90f4d6c3f5 100644 --- a/core/res/res/values-kn/strings.xml +++ b/core/res/res/values-kn/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ಶೀರ್ಷಿಕೆ ರಹಿತ>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ಯಾವುದೇ ಫೋನ್ ಸಂಖ್ಯೆಯಿಲ್ಲ)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ಪ್ರದೇಶ ಪ್ರಾಶಸ್ತ್ಯ"</string> <string name="search_language_hint" msgid="7004225294308793583">"ಭಾಷೆ ಹೆಸರನ್ನು ಟೈಪ್ ಮಾಡಿ"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"ಸೂಚಿತ ಭಾಷೆ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"ಸೂಚಿಸಲಾದ ಭಾಷೆಗಳು"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"ಸೂಚಿಸಲಾದ ಪ್ರದೇಶಗಳು"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ಎಲ್ಲಾ ಭಾಷೆಗಳು"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ಎಲ್ಲಾ ಪ್ರದೇಶಗಳು"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ಹುಡುಕಿ"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"ವರ್ಧಿತ ಅಧಿಸೂಚನೆಗಳು Android 12 ರಲ್ಲಿ Android ಅಡಾಪ್ಟಿವ್ ಅಧಿಸೂಚನೆಗಳನ್ನು ಬದಲಾಯಿಸಿವೆ. ಈ ವೈಶಿಷ್ಟ್ಯವು ಸೂಚಿಸಿದ ಕ್ರಿಯೆಗಳು ಮತ್ತು ಪ್ರತ್ಯುತ್ತರಗಳನ್ನು ತೋರಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಯೋಜಿಸುತ್ತದೆ.\n\nವರ್ಧಿತ ಅಧಿಸೂಚನೆಗಳು ಸಂಪರ್ಕ ಹೆಸರುಗಳು ಮತ್ತು ಸಂದೇಶಗಳಂತಹ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಒಳಗೊಂಡಂತೆ ಎಲ್ಲಾ ಅಧಿಸೂಚನೆ ವಿಷಯವನ್ನು ಪ್ರವೇಶಿಸಬಹುದು. ಈ ವೈಶಿಷ್ಟ್ಯವು ಫೋನ್ ಕರೆಗಳಿಗೆ ಉತ್ತರಿಸುವುದು ಮತ್ತು \'ಅಡಚಣೆ ಮಾಡಬೇಡಿ\' ಅನ್ನು ನಿಯಂತ್ರಿಸುವಂತಹ ಅಧಿಸೂಚನೆಗಳನ್ನು ವಜಾಗೊಳಿಸಬಹುದು ಅಥವಾ ಪ್ರತಿಕ್ರಿಯಿಸಬಹುದು."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ದೈನಂದಿನ ಸ್ಥಿತಿಯ ಮಾಹಿತಿಯ ಅಧಿಸೂಚನೆ"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ಚಾರ್ಜ್ಗೆ ಮೊದಲೆ ಬ್ಯಾಟರಿ ಮುಗಿದು ಬಿಡಬಹುದು"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ಬ್ಯಾಟರಿ ಅವಧಿ ಹೆಚ್ಚಿಸಲು ಬ್ಯಾಟರಿ ಸೇವರ್ ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ಬ್ಯಾಟರಿ ಸೇವರ್ ಅನ್ನು ಆನ್ ಮಾಡಲಾಗಿದೆ"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ಬ್ಯಾಟರಿ ಬಾಳಿಕೆಯನ್ನು ವಿಸ್ತರಿಸಲು ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಲಾಗುತ್ತಿದೆ"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ಬ್ಯಾಟರಿ ಸೇವರ್"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ಬ್ಯಾಟರಿ ಸೇವರ್ ಅನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ಫೋನ್ನಲ್ಲಿ ಸಾಕಷ್ಟು ಚಾರ್ಜ್ ಇದೆ. ಇನ್ನು ಮುಂದೆ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುವುದಿಲ್ಲ."</string> diff --git a/core/res/res/values-ko/strings.xml b/core/res/res/values-ko/strings.xml index 03a1f61e59e4..d75f3a8a175a 100644 --- a/core/res/res/values-ko/strings.xml +++ b/core/res/res/values-ko/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g><xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<제목 없음>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(전화번호 없음)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"지역 환경설정"</string> <string name="search_language_hint" msgid="7004225294308793583">"언어 이름 입력"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"추천"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"추천 언어"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"추천 지역"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"모든 언어"</string> <string name="region_picker_section_all" msgid="756441309928774155">"모든 지역"</string> <string name="locale_search_menu" msgid="6258090710176422934">"검색"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"자세히 알아보기"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12에서는 Android 적응형 알림이 개선된 알림으로 대체됩니다. 이 기능은 추천 작업과 답장을 표시하고 알림을 정리해 줍니다.\n\n개선된 알림은 연락처 이름과 메시지 등 개인 정보가 포함된 알림 내용에 액세스할 수 있습니다. 또한 전화를 받고 방해 금지 모드를 제어하는 등 알림을 닫거나 처리하는 것도 가능합니다."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"루틴 모드 정보 알림"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"평소에 충전하는 시간 전에 배터리가 소진될 수 있습니다."</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"배터리 수명을 연장하기 위해 절전 모드가 활성화되었습니다."</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"절전 모드"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"절전 모드가 사용 중지되었습니다"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"휴대전화의 배터리가 충분하므로 기능이 더 이상 제한되지 않습니다"</string> diff --git a/core/res/res/values-ky/strings.xml b/core/res/res/values-ky/strings.xml index efca6624d32e..b9d681c4a3f0 100644 --- a/core/res/res/values-ky/strings.xml +++ b/core/res/res/values-ky/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"Б"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"Кб"</string> - <string name="megabyteShort" msgid="6649361267635823443">"Мб"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"Гб"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ТБ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"ПБ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Баш аты жок>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Телефон номери жок)"</string> @@ -1689,7 +1684,7 @@ <string name="accessibility_service_screen_control_description" msgid="6946315917771791525">"Кызмат экрандагы нерселерди окуп, аларды башка колдонмолордун үстүнөн көрсөтөт."</string> <string name="accessibility_service_action_perform_title" msgid="779670378951658160">"Аракеттерди көрүп, аткаруу"</string> <string name="accessibility_service_action_perform_description" msgid="2718852014003170558">"Кызмат колдонмодо жасаган аракеттериңизге же түзмөктүн сенсорлоруна көз салып, сиздин атыңыздан буйруктарды берет."</string> - <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Уруксат берүү"</string> + <string name="accessibility_dialog_button_allow" msgid="2092558122987144530">"Ооба"</string> <string name="accessibility_dialog_button_deny" msgid="4129575637812472671">"Жок"</string> <string name="accessibility_select_shortcut_menu_title" msgid="6002726538854613272">"Функцияны колдонуп баштоо үчүн аны таптап коюңуз:"</string> <string name="accessibility_edit_shortcut_menu_button_title" msgid="239446795930436325">"Атайын мүмкүнчүлүктөр баскычы менен колдонгуңуз келген функцияларды тандаңыз"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Чөлкөмдүк жөндөөлөр"</string> <string name="search_language_hint" msgid="7004225294308793583">"Тилди киргизиңиз"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Сунушталгандар"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Сунушталган тилдер"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Сунушталган региондор"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Бардык тилдер"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Бардык өлкөлөр"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Издөө"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Кененирээк"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 версиясында ыңгайлаштырылуучу билдирмелер жакшыртылган билдирмелерге алмаштырылды. Бул функция ыкчам аракеттерди жана жоопторду көрсөтүп, билдирмелериңизди иреттейт.\n\nЖакшыртылган билдирмелер бардык билдирмелердин мазмунун, ошондой эле байланыштардын аты-жөнү жана билдирүүлөрү сыяктуу жеке маалыматты көрө алат. Ошондой эле, бул функция билдирмелерди жаап, баскычтарын басып, телефон чалууларга жооп берип жана \"Тынчымды алба\" функциясын башкара алат."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Режимдин адаттагы билдирмеси"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Батарея кубаттоого чейин отуруп калышы мүмкүн"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Батареянын отуруп калбашы үчүн Батареяны үнөмдөгүч режими иштетилди"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Батареяны үнөмдөгүч күйгүзүлдү"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Батареянын кубатынын мөөнөтүн узартуу үчүн батареянын колдонулушун азайтуу"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Батареяны үнөмдөгүч"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Батареяны үнөмдөө режими өчүк"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Телефондун кубаты жетиштүү. Функциялар мындан ары чектелбейт."</string> diff --git a/core/res/res/values-lo/strings.xml b/core/res/res/values-lo/strings.xml index e4b34b19d1c2..eeae8ce79b36 100644 --- a/core/res/res/values-lo/strings.xml +++ b/core/res/res/values-lo/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ບໍ່ມີຊື່>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ບໍ່ມີເບີໂທລະສັບ)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ການຕັ້ງຄ່າພາກພື້ນ"</string> <string name="search_language_hint" msgid="7004225294308793583">"ພິມຊື່ພາສາ"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"ແນະນຳ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"ພາສາທີ່ແນະນຳ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"ພາກພື້ນທີ່ແນະນໍາ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ທຸກພາສາ"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ທຸກຂົງເຂດ"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ຄົ້ນຫາ"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ສຶກສາເພີ່ມເຕີມ"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"ການແຈ້ງເຕືອນແບບປັບຕົວໄດ້ຂອງ Android ຖືກແທນທີ່ດ້ວຍການແຈ້ງເຕືອນທີ່ປັບປຸງໃຫ້ດີຂຶ້ນໃນ Android 12 ແລ້ວ. ຄຸນສົມບັດນີ້ສະແດງຄຳສັ່ງ ແລະ ການຕອບກັບທີ່ແນະນຳ ແລະ ຈັດລະບຽບການແຈ້ງເຕືອນຂອງທ່ານ.\n\nການແຈ້ງເຕືອນທີ່ປັບປຸງໃຫ້ດີຂຶ້ນສາມາດເຂົ້າເຖິງເນື້ອຫາການແຈ້ງເຕືອນໄດ້, ຮວມທັງຂໍ້ມູນສ່ວນຕົວ ເຊັ່ນ: ຊື່ຜູ້ຕິດຕໍ່ ແລະ ຂໍ້ຄວາມ. ຄຸນສົມບັດນີ້ສາມາດປິດ ຫຼື ຕອບກັບຫາການແຈ້ງເຕືອນໄດ້ນຳ ເຊັ່ນ: ການຮັບສາຍໂທລະສັບ ແລະ ຄວບຄຸມໂໝດຫ້າມລົບກວນ."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ການແຈ້ງເຕືອນຂໍ້ມູນໂໝດກິດຈະວັດປະຈຳວັນ"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ແບັດເຕີຣີອາດໝົດກ່ອນການສາກຕາມປົກກະຕິ"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ເປີດຕົວປະຢັດແບັດເຕີຣີເພື່ອຂະຫຍາຍອາຍຸແບັດເຕີຣີ"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ຕົວປະຢັດແບັດເຕີຣີ"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ປິດຕົວປະຢັດແບັດເຕີຣີແລ້ວ"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ໂທລະສັບມີໄຟພຽງພໍແລ້ວ. ບໍ່ມີການຈຳກັດຄຸນສົມບັດອີກຕໍ່ໄປແລ້ວ."</string> diff --git a/core/res/res/values-lt/strings.xml b/core/res/res/values-lt/strings.xml index dfa4b57d2405..f68b29279ac3 100644 --- a/core/res/res/values-lt/strings.xml +++ b/core/res/res/values-lt/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Be pavadinimo>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nėra telefono numerio)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Regiono nuostata"</string> <string name="search_language_hint" msgid="7004225294308793583">"Įveskite kalbos pav."</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Siūloma"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Siūlomos kalbos"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Siūlomi regionai"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Visos kalbos"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Visi regionai"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Paieška"</string> @@ -2080,8 +2077,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Sužinokite daugiau"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"12 versijos „Android“ patobulinti pranešimai pakeitė „Android“ prisitaikančius pranešimus. Ši funkcija rodo siūlomus veiksmus bei atsakymus ir tvarko jūsų pranešimus.\n\nPatobulintų pranešimų funkcija gali pasiekti pranešimų turinį, įskaitant asmens informaciją (pvz., kontaktų vardus ir pranešimus). Ši funkcija taip pat gali atsisakyti pranešimų arba į juos atsakyti, pvz., atsakyti į telefono skambučius ir valdyti netrukdymo režimą."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Veiksmų sekos režimo informacijos pranešimas"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Akumuliatoriaus energija gali išsekti prieš įprastą įkrovimą"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Akumuliatoriaus tausojimo priemonė suaktyvinta, kad akumuliatorius veiktų ilgiau"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Įjungta akumuliatoriaus tausojimo priemonė"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Sumažinamas akumuliatoriaus energijos vartojimas, kad akumuliatorius veiktų ilgiau"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Akumuliatoriaus tausojimo priemonė"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Akumuliatoriaus tausojimo priemonė išjungta"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefonas pakankamai įkrautas. Funkcijos neberibojamos."</string> diff --git a/core/res/res/values-lv/strings.xml b/core/res/res/values-lv/strings.xml index d965fea166ea..d2bb73c476de 100644 --- a/core/res/res/values-lv/strings.xml +++ b/core/res/res/values-lv/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Bez nosaukuma>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nav tālruņa numura)"</string> @@ -637,7 +632,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"Sazinieties ar remonta pakalpojumu sniedzēju."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"Nevar izveidot sejas modeli. Mēģiniet vēlreiz."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"Pārāk spilgts. Izmēģiniet maigāku apgaismojumu."</string> - <string name="face_acquired_too_dark" msgid="7919016380747701228">"Izmēģiniet spožāku apgaismojumu."</string> + <string name="face_acquired_too_dark" msgid="7919016380747701228">"Izmēģiniet spožāku apgaismojumu"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Pārvietojiet tālruni tālāk."</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Pārvietojiet tālruni tuvāk."</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Paceliet tālruni augstāk."</string> @@ -650,13 +645,13 @@ <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Lūdzu, atkārtoti reģistrējiet savu seju."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Nevar atpazīt seju. Mēģiniet vēlreiz."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Nedaudz mainiet galvas pozīciju."</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Skatieties tieši uz tālruni."</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Skatieties tieši uz tālruni."</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Skatieties tieši uz tālruni."</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Skatieties tieši uz tālruni"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Skatieties tieši uz tālruni"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Skatieties tieši uz tālruni"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Noņemiet visu, kas aizsedz jūsu seju."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Notīriet ekrāna augšdaļu, tostarp melno joslu."</string> - <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"Sejai ir jābūt pilnībā redzamai."</string> - <string name="face_acquired_mouth_covering_detected" msgid="615991670821926847">"Sejai ir jābūt pilnībā redzamai."</string> + <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"Sejai ir jābūt pilnībā redzamai"</string> + <string name="face_acquired_mouth_covering_detected" msgid="615991670821926847">"Sejai ir jābūt pilnībā redzamai"</string> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Nevar izveidot sejas modeli. Mēģiniet vēlreiz."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Konstatētas tumšas brilles. Sejai ir jābūt pilnībā redzamai."</string> <string name="face_acquired_mouth_covering_detected_alt" msgid="1122294982850589766">"Konstatēts sejas aizsegs. Sejai ir jābūt pilnībā redzamai."</string> @@ -1925,6 +1920,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Reģiona preference"</string> <string name="search_language_hint" msgid="7004225294308793583">"Ierakstiet valodas nosaukumu"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Ieteiktās"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Ieteiktās valodas"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Ieteiktie reģioni"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Visas valodas"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Visi reģioni"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Meklēt"</string> @@ -2079,8 +2076,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Uzzināt vairāk"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android adaptīvie paziņojumi ir aizstāti ar funkciju “Uzlabotie paziņojumi” operētājsistēmā Android 12. Šī funkcija parāda ieteiktās darbības un atbildes, kā arī kārto jūsu paziņojumus.\n\nFunkcija “Uzlabotie paziņojumi” var piekļūt paziņojumu saturam, tostarp personas informācijai, piemēram, kontaktpersonu vārdiem un ziņojumiem. Šī funkcija var arī noraidīt paziņojumus vai atbildēt uz tiem, piemēram, atbildēt uz tālruņa zvaniem vai pārvaldīt funkciju “Netraucēt”."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Informatīvs paziņojums par akumulatoru"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Akumulators var izlādēties pirms parastā uzlādes laika"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Aktivizēts akumulatora enerģijas taupīšanas režīms, lai palielinātu akumulatora darbības ilgumu"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Akumulatora enerģijas taupīšanas režīms"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Akumulatora enerģijas taupīšanas režīms ir izslēgts"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Tālruņa uzlādes līmenis ir pietiekams. Funkcijas vairs netiek ierobežotas."</string> diff --git a/core/res/res/values-mk/strings.xml b/core/res/res/values-mk/strings.xml index e182833c6886..0df431262104 100644 --- a/core/res/res/values-mk/strings.xml +++ b/core/res/res/values-mk/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ТБ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"ПБ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Без наслов>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Нема телефонски број)"</string> @@ -939,7 +934,7 @@ <string name="lockscreen_transport_stop_description" msgid="1449552232598355348">"Запри"</string> <string name="lockscreen_transport_rew_description" msgid="7680106856221622779">"Премотај назад"</string> <string name="lockscreen_transport_ffw_description" msgid="4763794746640196772">"Брзо премотај напред"</string> - <string name="emergency_calls_only" msgid="3057351206678279851">"Само повици за итни случаи"</string> + <string name="emergency_calls_only" msgid="3057351206678279851">"Само итни повици"</string> <string name="lockscreen_network_locked_message" msgid="2814046965899249635">"Мрежата е заклучена"</string> <string name="lockscreen_sim_puk_locked_message" msgid="6618356415831082174">"SIM картичката е заклучена со ПУК код."</string> <string name="lockscreen_sim_puk_locked_instructions" msgid="5307979043730860995">"Погледнете го Упатството за корисници или контактирајте со Грижа за корисници."</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Претпочитувања за регион"</string> <string name="search_language_hint" msgid="7004225294308793583">"Внесете име на јазик"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Предложени"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Предложени јазици"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Предложени региони"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Сите јазици"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Сите региони"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Пребарај"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Дознајте повеќе"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"„Подобрените известувања“ ги заменија „Адаптивните известувања на Android“ во Android 12. Оваа функција прикажува предложени дејства и одговори и ги организира вашите известувања. \n\n„Подобрените известувања“ може да пристапуваат до содржините од известувањата, вклучително и личните податоци, како што се имињата на контактите и пораките. Функцијава може и да ги отфрла или да одговара на известувањата, како на пример, да одговара на телефонски повици и да го контролира режимот „Не вознемирувај“."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Известување за информации за режимот за рутини"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Батеријата може да се потроши пред вообичаеното време за полнење"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Активиран е „Штедачот на батерија“ за да се продолжи траењето на батеријата"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"„Штедачот на батерија“ е вклучен"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Се намалува користењето на батеријата за нејзино подолго траење"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Штедач на батерија"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Штедачот на батерија е исклучен"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Телефонот е доволно полн. Функциите веќе не се ограничени."</string> diff --git a/core/res/res/values-ml/strings.xml b/core/res/res/values-ml/strings.xml index c735ff5361d1..f18fb00a86ef 100644 --- a/core/res/res/values-ml/strings.xml +++ b/core/res/res/values-ml/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ശീർഷകമില്ലാത്ത>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ഫോൺ നമ്പറില്ല)"</string> @@ -636,7 +631,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"റിപ്പയർ കേന്ദ്രം സന്ദർശിക്കുക."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"മുഖ മോഡൽ സൃഷ്ടിക്കാനാകില്ല. വീണ്ടും ശ്രമിക്കൂ."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"വളരെയധികം തെളിച്ചം. സൗമ്യതയേറിയ പ്രകാശം ശ്രമിക്കൂ."</string> - <string name="face_acquired_too_dark" msgid="7919016380747701228">"തിളക്കമേറിയ ലൈറ്റിംഗ് പരീക്ഷിച്ച് നോക്കൂ"</string> + <string name="face_acquired_too_dark" msgid="7919016380747701228">"കൂടുതൽ വെളിച്ചമുള്ളയിടത്ത് പരീക്ഷിച്ച് നോക്കൂ"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"ഫോൺ കൂടുതൽ ദൂരേയ്ക്ക് നീക്കുക"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"ഫോൺ അടുത്തേക്ക് നീക്കുക"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"ഫോൺ മുകളിലേക്ക് ഉയർത്തുക"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"മേഖലാ മുൻഗണന"</string> <string name="search_language_hint" msgid="7004225294308793583">"ഭാഷ ടൈപ്പ് ചെയ്യുക"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"നിര്ദ്ദേശിച്ചത്"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"നിർദ്ദേശിച്ച ഭാഷകൾ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"നിർദ്ദേശിച്ച പ്രദേശങ്ങൾ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"എല്ലാ ഭാഷകളും"</string> <string name="region_picker_section_all" msgid="756441309928774155">"എല്ലാ പ്രദേശങ്ങളും"</string> <string name="locale_search_menu" msgid="6258090710176422934">"തിരയുക"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"കൂടുതലറിയുക"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12-ൽ Android അഡാപ്റ്റീവ് അറിയിപ്പുകൾക്ക് പകരം മെച്ചപ്പെടുത്തിയ അറിയിപ്പുകൾ ഉൾപ്പെടുത്തിയിരിക്കുന്നു. നിർദ്ദേശിക്കുന്ന പ്രവർത്തനങ്ങളും മറുപടികളും കാണിക്കുന്നതിനൊപ്പം ഈ ഫീച്ചർ നിങ്ങളുടെ അറിയിപ്പുകൾ ഓർഗനൈസ് ചെയ്യുന്നു.\n\nമെച്ചപ്പെടുത്തിയ അറിയിപ്പുകൾക്ക്, കോൺടാക്റ്റ് പേരുകളും സന്ദേശങ്ങളും പോലുള്ള വ്യക്തിപരമായ വിവരങ്ങൾ ഉൾപ്പെടെയുള്ള അറിയിപ്പ് ഉള്ളടക്കം ആക്സസ് ചെയ്യാനാകും. ഫോൺ കോളുകൾക്ക് മറുപടി നൽകുക, \'ശല്യപ്പെടുത്തരുത്\' നിയന്ത്രിക്കുക എന്നിവ പോലെ, അറിയിപ്പുകൾ ഡിസ്മിസ് ചെയ്യാനും അവയ്ക്ക് മറുപടി നൽകാനും ഈ ഫീച്ചറിന് കഴിയും."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ദിനചര്യ മോഡ് വിവരത്തെ കുറിച്ചുള്ള അറിയിപ്പ്"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"സാധാരണയുള്ളതിലും നേരത്തെ ബാറ്ററിയുടെ ചാർജ് തീർന്നേക്കാം"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ബാറ്ററി ലൈഫ് വര്ദ്ധിപ്പിക്കാൻ, ബാറ്ററി ലാഭിക്കൽ സജീവമാക്കി"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ബാറ്ററി സേവർ ഓണാക്കി"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ബാറ്ററി ലൈഫ് വർദ്ധിപ്പിക്കാൻ ബാറ്ററി ഉപയോഗം കുറയ്ക്കുന്നു"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ബാറ്ററി ലാഭിക്കൽ"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ബാറ്ററി ലാഭിക്കൽ ഓഫാക്കിയിരിക്കുന്നു"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ഫോണിൽ വേണ്ടത്ര ചാർജ് ഉണ്ട്. ഫീച്ചറുകൾക്ക് ഇനി നിയന്ത്രണമില്ല."</string> diff --git a/core/res/res/values-mn/strings.xml b/core/res/res/values-mn/strings.xml index 8265c910e5f6..3b679c8c1735 100644 --- a/core/res/res/values-mn/strings.xml +++ b/core/res/res/values-mn/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"килобайт"</string> - <string name="megabyteShort" msgid="6649361267635823443">"МБ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ГБ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TБ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"ПБ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Гарчиггүй>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Утасны дугаар байхгүй)"</string> @@ -644,7 +639,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Утсаа зүүн тийш болгоно уу"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Утсаа баруун тийш болгоно уу"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Төхөөрөмж рүүгээ аль болох эгц харна уу."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"Таны нүүрийг харагдахгүй байна. Утсаа нүднийхээ түвшинд барина уу."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Таны царай харагдахгүй байна. Утсаа нүднийхээ түвшинд барина уу."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Хэт их хөдөлгөөнтэй байна. Утсаа хөдөлгөөнгүй барина уу."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Нүүрээ дахин бүртгүүлнэ үү."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Царайг танихгүй байна. Дахин оролдоно уу."</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Бүс нутгийн тохиргоо"</string> <string name="search_language_hint" msgid="7004225294308793583">"Улсын хэлийг бичнэ үү"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Санал болгосон"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Санал болгосон хэл"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Санал болгосон бүс нутгууд"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Бүх хэл"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Бүх бүс нутаг"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Хайх"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Нэмэлт мэдээлэл авах"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Сайжруулсан мэдэгдэл нь Android 12 дахь Android-н Орчинтой тохирсон мэдэгдлийг орлосон. Энэ онцлог нь санал болгосон үйлдлүүд болон хариунуудыг харуулж, таны мэдэгдлийг цэгцэлнэ.\n\nСайжруулсан мэдэгдэл нь харилцагчийн нэр, мессеж зэрэг хувийн мэдээллийг оруулаад мэдэгдлийн контентод хандах боломжтой. Энэ онцлог мөн утасны дуудлагад хариулах болон Бүү саад бол горимыг хянах зэргээр мэдэгдлийг хаах эсвэл түүнд хариулах боломжтой."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Хэвшлийн горимын мэдээллийн мэдэгдэл"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Батарей ихэвчлэн цэнэглэдэг хугацаанаас өмнө дуусаж болзошгүй"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Батарейн ажиллах хугацааг уртасгахын тулд Батарей хэмнэгчийг идэвхжүүллээ"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Батарей хэмнэгчийг асаасан"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Батарейн ажиллах хугацааг уртасгахын тулд батарей ашиглалтыг багасгаж байна"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Батарей хэмнэгч"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Батарей хэмнэгчийг унтраалаа"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Утас хангалттай цэнэгтэй боллоо. Онцлогуудыг цаашид хязгаарлахгүй."</string> diff --git a/core/res/res/values-mr/strings.xml b/core/res/res/values-mr/strings.xml index f53856697337..0477a06ea179 100644 --- a/core/res/res/values-mr/strings.xml +++ b/core/res/res/values-mr/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<अशीर्षकांकित>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(कोणताही फोन नंबर नाही)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"प्रदेश प्राधान्य"</string> <string name="search_language_hint" msgid="7004225294308793583">"भाषा नाव टाइप करा"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"सुचवलेल्या भाषा"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"सुचवलेल्या भाषा"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"सुचवलेले प्रदेश"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"सर्व भाषा"</string> <string name="region_picker_section_all" msgid="756441309928774155">"सर्व प्रदेश"</string> <string name="locale_search_menu" msgid="6258090710176422934">"शोध"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"अधिक जाणून घ्या"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 मधील Android ॲडॅप्टिव्ह सूचना हे वैशिष्ट्य बदलून आता वर्धित सूचना झाले आहे. हे वैशिष्ट्य सुचवलेल्या कृती आणि उत्तरे दाखवते व तुमच्या सूचना व्यवस्थापित करते. \n\nवर्धित सूचना हे वैशिष्ट्य संपर्कांची नावे आणि मेसेज यांसारख्या वैयक्तिक माहितीसह सर्व सूचनांचा आशय ॲक्सेस करू शकते. हे वैशिष्ट्य फोन कॉलना उत्तर देणे आणि व्यत्यय आणू नका नियंत्रित करणे यांसारख्या कृती करून सूचना डिसमिस करू शकते किंवा त्यांना प्रतिसाद देऊ शकते."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"दिनक्रम मोडची माहिती सूचना"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"चार्जिंगची सामान्य पातळी गाठेपर्यंत कदाचित बॅटरी संपू शकते"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"बॅटरी लाइफ वाढवण्यासाठी बॅटरी सेव्हर सुरू केला आहे"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"बॅटरी सेव्हर सुरू केला आहे"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"बॅटरी लाइफ वाढवण्यासाठी बॅटरी वापर कमी करा"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"बॅटरी सेव्हर"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"बॅटरी सेव्हर बंद केलेला आहे"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"फोन पुरेसा चार्ज केलेला आहे. वैशिष्ट्ये मर्यादित नाहीत."</string> diff --git a/core/res/res/values-ms/strings.xml b/core/res/res/values-ms/strings.xml index 7f43b72d71d8..cfb8739382a2 100644 --- a/core/res/res/values-ms/strings.xml +++ b/core/res/res/values-ms/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Tidak bertajuk>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Tiada nombor telefon)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Pilihan wilayah"</string> <string name="search_language_hint" msgid="7004225294308793583">"Taipkan nama bahasa"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Dicadangkan"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Bahasa yang dicadangkan"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Rantau yang disyorkan"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Semua bahasa"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Semua rantau"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Cari"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Ketahui lebih lanjut"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Pemberitahuan yang dipertingkatkan menggantikan Pemberitahuan Boleh Suai Android dalam Android 12. Ciri ini menunjukkan cadangan tindakan dan balasan, serta mengatur pemberitahuan anda.\n\nPemberitahuan yang dipertingkatkan dapat mengakses kandungan pemberitahuan, termasuk maklumat peribadi seperti nama kenalan dan mesej. Ciri ini juga dapat mengetepikan atau membalas pemberitahuan, seperti menjawab panggilan telefon dan mengawal Jangan Ganggu."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Pemberitahuan maklumat Mod Rutin"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Bateri mungkin habis sebelum pengecasan biasa"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Penjimat Bateri diaktifkan untuk memanjangkan hayat bateri"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Penjimat Bateri dihidupkan"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Mengurangkan penggunaan bateri untuk melanjutkan hayat bateri"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Penjimat Bateri"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Penjimat Bateri dimatikan"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Cas telefon mencukupi. Ciri tidak lagi dihadkan."</string> diff --git a/core/res/res/values-my/strings.xml b/core/res/res/values-my/strings.xml index d5035a0f2a88..07e54a6d034c 100644 --- a/core/res/res/values-my/strings.xml +++ b/core/res/res/values-my/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ခေါင်းစဉ်မဲ့>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ဖုန်းနံပါတ်မရှိပါ)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ဒေသရွေးချယ်မှု"</string> <string name="search_language_hint" msgid="7004225294308793583">"ဘာသာစကားအမည် ထည့်ပါ"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"အကြံပြုထားသည်"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"အကြံပြုထားသည့် ဘာသာစကားများ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"အကြံပြုထားသည့် ဒေသများ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ဘာသာစကားအားလုံး"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ဒေသအားလုံး"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ရှာဖွေရန်"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ပိုမိုလေ့လာရန်"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 တွင် ‘Android အလိုက်သင့် အကြောင်းကြားချက်များ’ ကို အဆင့်မြင့် အကြောင်းကြားချက်များဖြင့် အစားထိုးထားသည်။ ဤဝန်ဆောင်မှုက အကြံပြုထားသော လုပ်ဆောင်ချက်နှင့် ပြန်စာများကို ပြပေးပြီး သင်၏အကြောင်းကြားချက်များကို စီစဉ်ပေးသည်။\n\nအဆင့်မြင့် အကြောင်းကြားချက်များက အဆက်အသွယ်အမည်နှင့် မက်ဆေ့ဂျ်များကဲ့သို့ ကိုယ်ရေးကိုယ်တာအချက်လက်များ အပါအဝင် အကြောင်းကြားချက် အကြောင်းအရာကို သုံးနိုင်သည်။ ဤဝန်ဆောင်မှုက ဖုန်းခေါ်ဆိုမှုများ ဖြေခြင်းနှင့် ‘မနှောင့်ယှက်ရ’ ကို ထိန်းချုပ်ခြင်းကဲ့သို့ အကြောင်းကြားချက်များကို ပယ်နိုင်သည် (သို့) တုံ့ပြန်နိုင်သည်။"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ပုံမှန်မုဒ်အတွက် အချက်အလက်ပြသည့် အကြောင်းကြားချက်"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ပုံမှန်အားသွင်းမှုမပြုလုပ်မီ ဘက်ထရီကုန်သွားနိုင်သည်"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ဘက်ထရီသက်တမ်းကို တိုးမြှင့်ရန် \'ဘက်ထရီအားထိန်း\' စတင်ပြီးပါပြီ"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ဘက်ထရီ အားထိန်း ဖွင့်ထားသည်"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ဘက်ထရီသက်တမ်း ပိုရှည်စေရန် ဘက်ထရီ အသုံးပြုမှု လျှော့ချခြင်း"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ဘက်ထရီ အားထိန်း"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ဘက်ထရီ အားထိန်းကို ပိတ်ထားသည်"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ဖုန်းတွင် ဘက်ထရီအား အလုံအလောက် ရှိသည်။ လုပ်ဆောင်ချက်များကို ကန့်သတ်မထားတော့ပါ။"</string> diff --git a/core/res/res/values-nb/strings.xml b/core/res/res/values-nb/strings.xml index f63dfefde7f3..d5d230b1ad2d 100644 --- a/core/res/res/values-nb/strings.xml +++ b/core/res/res/values-nb/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Uten navn>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Mangler telefonnummer)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Regionsinnstilling"</string> <string name="search_language_hint" msgid="7004225294308793583">"Skriv inn språknavn"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Foreslått"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Foreslåtte språk"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Foreslåtte regioner"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Alle språk"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Alle områder"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Søk"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Finn ut mer"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Forbedrede varsler erstatter tilpassede Android-varsler i Android 12. Denne funksjonen viser foreslåtte handlinger og svar og organiserer varslene dine.\n\nForbedrede varsler har tilgang til varselinnhold, inkludert personopplysninger som kontaktnavn og meldinger. Funksjonen kan også avvise og svare på varsler, for eksempel svare på anrop og kontrollere «Ikke forstyrr»."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Varsel med informasjon om rutinemodus"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Batteriet kan gå tomt før den vanlige ladingen"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Batterisparing er aktivert for å forlenge batterilevetiden"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Batterisparing"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Batterisparing er slått av"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefonen har nok batteri. Funksjoner begrenses ikke lenger."</string> diff --git a/core/res/res/values-ne/strings.xml b/core/res/res/values-ne/strings.xml index 40e9160a9092..6f104048be99 100644 --- a/core/res/res/values-ne/strings.xml +++ b/core/res/res/values-ne/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"के.बि."</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<बिना शीर्षक>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(कुनै फोन नम्बर छैन)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"क्षेत्रको प्राथमिकता"</string> <string name="search_language_hint" msgid="7004225294308793583">"भाषाको नाम टाइप गर्नुहोस्"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"सिफारिस गरिएको"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"सिफारिस गरिएका भाषाहरू"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"सिफारिस गरिएका क्षेत्रहरू"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"सम्पूर्ण भाषाहरू"</string> <string name="region_picker_section_all" msgid="756441309928774155">"सबै क्षेत्रहरू"</string> <string name="locale_search_menu" msgid="6258090710176422934">"खोज"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"थप जान्नुहोस्"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android १२ मा Android को अनुकूल पार्न मिल्ने सूचनाहरू नामक सुविधालाई परिष्कृत सूचनाहरू नामक सुविधाले प्रतिस्थापन गरेको छ। यो सुविधाले कारबाही तथा जवाफसम्बन्धी सुझाव देखाउँछ र तपाईंका सूचनाहरू व्यवस्थित गर्छ।\n\nपरिष्कृत सूचनाहरू नामक सुविधाले सूचनामा उल्लिखित सम्पर्क व्यक्तिको नाम र म्यासेज जस्ता व्यक्तिगत जानकारीलगायतका सामग्री हेर्न तथा प्रयोग गर्न सक्छ। यो सुविधाले फोन उठाउने तथा \'बाधा नपुऱ्याउनुहोस्\' मोड नियन्त्रण गर्ने कार्यसहित सूचनाहरू हटाउने वा सूचनाहरूको जवाफ दिने कार्य पनि गर्न सक्छ।"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"दिनचर्या मोडको जानकारीमूलक सूचना"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"प्रायः चार्ज गर्ने समय हुनुभन्दा पहिले नै ब्याट्री सकिन सक्छ"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ब्याट्रीको आयु बढाउन ब्याट्री सेभर सक्रिय गरियो"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ब्याट्री सेभर"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ब्याट्री सेभर अफ गरियो"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"फोनमा पर्याप्त चार्ज छ। सुविधाहरूलाई अब उप्रान्त प्रतिबन्ध लगाइँदैन।"</string> diff --git a/core/res/res/values-nl/strings.xml b/core/res/res/values-nl/strings.xml index 1dbb6ff5aadd..6c4b68e8b814 100644 --- a/core/res/res/values-nl/strings.xml +++ b/core/res/res/values-nl/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">" KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Naamloos>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Geen telefoonnummer)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Regiovoorkeur"</string> <string name="search_language_hint" msgid="7004225294308793583">"Typ de naam van een taal"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Voorgesteld"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Voorgestelde talen"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Voorgestelde regio\'s"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Alle talen"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Alle regio\'s"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Zoeken"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Meer informatie"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"In Android 12 hebben verbeterde meldingen aanpasbare Android-meldingen vervangen. Deze functie laat voorgestelde acties en antwoorden zien en ordent je meldingen.\n\nVerbeterde meldingen hebben toegang tot meldingscontent, waaronder persoonlijke informatie zoals contactnamen en berichten. Deze functie kan ook meldingen sluiten of erop reageren, zoals telefoongesprekken aannemen, en Niet storen beheren."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Informatiemelding voor routinemodus"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"De batterij raakt mogelijk leeg voordat deze normaal gesproken wordt opgeladen"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Batterijbesparing is geactiveerd om de batterijduur te verlengen"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Batterijbesparing staat aan"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Het batterijgebruik wordt beperkt om de batterijduur te verlengen"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Batterijbesparing"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Batterijbesparing staat uit"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefoon is voldoende opgeladen. Functies worden niet meer beperkt."</string> diff --git a/core/res/res/values-or/strings.xml b/core/res/res/values-or/strings.xml index d8c7f9e3d462..331e300ac116 100644 --- a/core/res/res/values-or/strings.xml +++ b/core/res/res/values-or/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ନାମହୀନ>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(କୌଣସି ଫୋନ୍ ନମ୍ବର ନାହିଁ)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ପସନ୍ଦର ଅଞ୍ଚଳ"</string> <string name="search_language_hint" msgid="7004225294308793583">"ଭାଷାର ନାମ ଟାଇପ୍ କରନ୍ତୁ"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"ପ୍ରସ୍ତାବିତ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"ପ୍ରସ୍ତାବିତ ଭାଷାଗୁଡ଼ିକ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"ପ୍ରସ୍ତାବିତ ଅଞ୍ଚଳଗୁଡ଼ିକ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ସମସ୍ତ ଭାଷା"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ସମସ୍ତ ଅଞ୍ଚଳ"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ସନ୍ଧାନ କରନ୍ତୁ"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ଅଧିକ ଜାଣନ୍ତୁ"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12ରେ Android ଆଡେପ୍ଟିଭ୍ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ଉନ୍ନତ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକରେ ପରିବର୍ତ୍ତନ କରାଯାଇଛି। ଏହି ଫିଚର୍ ପ୍ରସ୍ତାବିତ କାର୍ଯ୍ୟ ଏବଂ ପ୍ରତ୍ୟୁତ୍ତରଗୁଡ଼ିକୁ ଦେଖାଏ ଏବଂ ଆପଣଙ୍କ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ବ୍ୟବସ୍ଥିତ କରେ।\n\nଉନ୍ନତ ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକ ଯୋଗାଯୋଗ ନାମ ଏବଂ ମେସେଜଗୁଡ଼ିକ ପରି ବ୍ୟକ୍ତିଗତ ସୂଚନା ସମେତ ବିଜ୍ଞପ୍ତିର ବିଷୟବସ୍ତୁକୁ ଆକ୍ସେସ୍ କରିପାରିବ। ଏହି ଫିଚର୍ ଫୋନ୍ କଲଗୁଡ଼ିକର ଉତ୍ତର ଦେବା ଏବଂ \'ବିରକ୍ତ କରନ୍ତୁ ନାହିଁ\'କୁ ନିୟନ୍ତ୍ରଣ କରିବା ପରି, ବିଜ୍ଞପ୍ତିଗୁଡ଼ିକୁ ମଧ୍ୟ ଖାରଜ କରିପାରିବ କିମ୍ବା ସେଗୁଡ଼ିକର ଉତ୍ତର ଦେଇପାରିବ।"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ନିୟମିତ ମୋଡ୍ ସୂଚନା ବିଜ୍ଞପ୍ତି"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ସାଧାରଣ ଭାବରେ ଚାର୍ଜ୍ କରିବା ପୂର୍ବରୁ ବ୍ୟାଟେରୀ ସରିଯାଇପାରେ"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ବ୍ୟାଟେରୀର ସମୟକୁ ବଢ଼ାଇବା ପାଇଁ ବ୍ୟଟେରୀ ସେଭର୍କୁ କାର୍ଯ୍ୟକାରୀ କରାଯାଇଛି"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ବ୍ୟାଟେରୀ ସେଭର ଚାଲୁ କରାଯାଇଛି"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ବ୍ୟାଟେରୀ ଲାଇଫ ବଢ଼ାଇବା ପାଇଁ ବ୍ୟାଟେରୀ ବ୍ୟବହାର କମ୍ କରିବା"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ବ୍ୟାଟେରୀ ସେଭର୍"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ବ୍ୟାଟେରୀ ସେଭର୍ ବନ୍ଦ ଅଛି"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ଫୋନରେ ଯଥେଷ୍ଟ ଚାର୍ଜ ଅଛି। ଫିଚରଗୁଡ଼ିକ ଆଉ ପ୍ରତିବନ୍ଧିତ ନୁହେଁ।"</string> diff --git a/core/res/res/values-pa/strings.xml b/core/res/res/values-pa/strings.xml index cc3af05e200a..2f3294e5bbf6 100644 --- a/core/res/res/values-pa/strings.xml +++ b/core/res/res/values-pa/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ਬਿਨਾਂ ਸਿਰਲੇਖ>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ਕੋਈ ਫ਼ੋਨ ਨੰਬਰ ਨਹੀਂ)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ਖੇਤਰ ਤਰਜੀਹ"</string> <string name="search_language_hint" msgid="7004225294308793583">"ਭਾਸ਼ਾ ਦਾ ਨਾਮ ਟਾਈਪ ਕਰੋ"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"ਸੁਝਾਈਆਂ ਗਈਆਂ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"ਸੁਝਾਈਆਂ ਗਈਆਂ ਭਾਸ਼ਾਵਾਂ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"ਸੁਝਾਏ ਗਏ ਖੇਤਰ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ਸਾਰੇ ਖੇਤਰ"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ਖੋਜੋ"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ਹੋਰ ਜਾਣੋ"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 ਵਿੱਚ ਵਿਸਤ੍ਰਿਤ ਸੂਚਨਾਵਾਂ ਨੇ Android ਅਡੈਪਟਿਵ ਸੂਚਨਾਵਾਂ ਦੀ ਜਗ੍ਹਾ ਲੈ ਲਈ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਕਾਰਵਾਈਆਂ ਅਤੇ ਜਵਾਬਾਂ ਵਾਲੇ ਸੁਝਾਅ ਦਿਖਾਉਂਦੀ ਹੈ ਅਤੇ ਤੁਹਾਡੀਆਂ ਸੂਚਨਾਵਾਂ ਨੂੰ ਵਿਵਸਥਿਤ ਕਰਦੀ ਹੈ।\n\nਵਿਸਤ੍ਰਿਤ ਸੂਚਨਾਵਾਂ ਸੂਚਨਾ ਸਮੱਗਰੀ ਤੱਕ ਪਹੁੰਚ ਕਰ ਸਕਦੀਆਂ ਹਨ, ਜਿਸ ਵਿੱਚ ਸੰਪਰਕ ਦੇ ਨਾਮ ਅਤੇ ਸੁਨੇਹੇ ਵਰਗੀ ਨਿੱਜੀ ਜਾਣਕਾਰੀ ਵੀ ਸ਼ਾਮਲ ਹੈ। ਇਹ ਵਿਸ਼ੇਸ਼ਤਾ ਸੂਚਨਾਵਾਂ ਨੂੰ ਖਾਰਜ ਵੀ ਕਰ ਸਕਦੀ ਹੈ ਜਾਂ ਸੂਚਨਾਵਾਂ ਦਾ ਜਵਾਬ ਵੀ ਦੇ ਸਕਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਫ਼ੋਨ ਕਾਲਾਂ ਦਾ ਜਵਾਬ ਦੇਣਾ ਅਤੇ \'ਪਰੇਸ਼ਾਨ ਨਾ ਕਰੋ\' ਨੂੰ ਕੰਟਰੋਲ ਕਰਨਾ।"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"ਨਿਯਮਬੱਧ ਮੋਡ ਦੀ ਜਾਣਕਾਰੀ ਵਾਲੀ ਸੂਚਨਾ"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"ਬੈਟਰੀ ਚਾਰਜ ਕਰਨ ਦੇ ਮਿੱਥੇ ਸਮੇਂ ਤੋਂ ਪਹਿਲਾਂ ਸ਼ਾਇਦ ਬੈਟਰੀ ਖਤਮ ਹੋ ਜਾਵੇ"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"ਬੈਟਰੀ ਲਾਈਫ਼ ਵਧਾਉਣ ਲਈ ਬੈਟਰੀ ਸੇਵਰ ਚਾਲੂ ਕੀਤਾ ਗਿਆ"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"ਬੈਟਰੀ ਸੇਵਰ ਚਾਲੂ ਹੈ"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"ਬੈਟਰੀ ਲਾਈਫ਼ ਵਧਾਉਣ ਲਈ ਬੈਟਰੀ ਵਰਤੋਂ ਨੂੰ ਘਟਾਉਣਾ"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"ਬੈਟਰੀ ਸੇਵਰ"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ਬੈਟਰੀ ਸੇਵਰ ਬੰਦ ਕੀਤਾ ਗਿਆ"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ਫ਼ੋਨ ਲੋੜੀਂਦਾ ਚਾਰਜ ਹੈ। ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਹੁਣ ਪ੍ਰਤਿਬੰਧਿਤ ਨਹੀਂ ਹਨ।"</string> diff --git a/core/res/res/values-pl/strings.xml b/core/res/res/values-pl/strings.xml index 2e491b385910..55c4574f77a0 100644 --- a/core/res/res/values-pl/strings.xml +++ b/core/res/res/values-pl/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Bez nazwy>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Brak numeru telefonu)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Ustawienie regionu"</string> <string name="search_language_hint" msgid="7004225294308793583">"Wpisz nazwę języka"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugerowane"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Sugerowane języki"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Sugerowane regiony"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Wszystkie języki"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Wszystkie kraje"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Szukaj"</string> @@ -2080,8 +2077,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Więcej informacji"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"W Androidzie 12 ulepszone powiadomienia zastąpiły dotychczasowe powiadomienia adaptacyjne. Ta funkcja pokazuje sugerowane działania i odpowiedzi oraz porządkuje powiadomienia.\n\nUlepszone powiadomienia mogą czytać całą zawartość powiadomień, w tym informacje osobiste takie jak nazwy kontaktów i treść wiadomości. Funkcja może też zamykać powiadomienia oraz reagować na nie, np. odbierać połączenia telefoniczne i sterować trybem Nie przeszkadzać."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Powiadomienie z informacją o trybie rutynowym"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Bateria może się wyczerpać przed zwykłą porą ładowania"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Włączono Oszczędzanie baterii, by wydłużyć czas pracy na baterii"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Oszczędzanie baterii jest włączone"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Ograniczam wykorzystanie baterii, aby przedłużyć jej żywotność"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Oszczędzanie baterii"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Oszczędzanie baterii zostało wyłączone"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefon jest wystarczająco naładowany. Funkcje nie są już ograniczone."</string> diff --git a/core/res/res/values-pt-rBR/strings.xml b/core/res/res/values-pt-rBR/strings.xml index 029099b65e8d..a02c200c0f4f 100644 --- a/core/res/res/values-pt-rBR/strings.xml +++ b/core/res/res/values-pt-rBR/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sem título>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nenhum número de telefone)"</string> @@ -638,7 +633,7 @@ <string name="face_acquired_too_bright" msgid="8070756048978079164">"Muito iluminado. Diminua a iluminação."</string> <string name="face_acquired_too_dark" msgid="7919016380747701228">"Use uma iluminação mais intensa"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Afaste o smartphone"</string> - <string name="face_acquired_too_far" msgid="2922278214231064859">"Aproxime o smartphone"</string> + <string name="face_acquired_too_far" msgid="2922278214231064859">"Aproxime o smartphone do seu rosto"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Mova o smartphone para cima"</string> <string name="face_acquired_too_low" msgid="4075391872960840081">"Mova o smartphone para baixo"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Mova o smartphone para a esquerda"</string> @@ -649,9 +644,9 @@ <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Registre seu rosto novamente."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Não foi possível reconhecer o rosto Tente de novo."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Mude a posição da cabeça ligeiramente"</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Olhe mais diretamente para o smartphone"</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Olhe mais diretamente para o smartphone"</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Olhe mais diretamente para o smartphone"</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Olhe diretamente para o smartphone"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Olhe diretamente para o smartphone"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Olhe diretamente para o smartphone"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Remova tudo que esteja ocultando seu rosto."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Limpe a parte superior da tela, inclusive a barra preta"</string> <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"Seu rosto precisa estar completamente visível"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferência de região"</string> <string name="search_language_hint" msgid="7004225294308793583">"Digitar nome do idioma"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugeridos"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Idiomas sugeridos"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Regiões sugeridas"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Todos os idiomas"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Todas as regiões"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Pesquisa"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Saiba mais"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"No Android 12, as notificações avançadas substituíram as notificações adaptáveis. Esse recurso mostra ações e respostas sugeridas, além de organizar suas notificações.\n\nAs notificações avançadas podem acessar o conteúdo das notificações, incluindo informações pessoais como nomes de contatos e mensagens. Elas também podem dispensar ou responder às notificações, como atender ligações telefônicas e controlar o Não perturbe."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificação de informação do modo rotina"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"A bateria pode acabar antes da recarga normal"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"A Economia de bateria foi ativada para aumentar a duração da carga"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Economia de bateria ativada"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reduzindo o uso da bateria para prolongar a duração dela"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Economia de bateria"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"\"Economia de bateria\" desativada"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Não há carga suficiente no smartphone. Os recursos não estão mais restritos."</string> diff --git a/core/res/res/values-pt-rPT/strings.xml b/core/res/res/values-pt-rPT/strings.xml index 3abe9b3ba115..d804c238ac3c 100644 --- a/core/res/res/values-pt-rPT/strings.xml +++ b/core/res/res/values-pt-rPT/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sem nome>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nenhum número de telefone)"</string> @@ -638,7 +633,7 @@ <string name="face_acquired_too_bright" msgid="8070756048978079164">"Demasiado clara. Experimente uma luz mais suave."</string> <string name="face_acquired_too_dark" msgid="7919016380747701228">"Experimente um local com mais luz"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Afaste ainda mais o telemóvel"</string> - <string name="face_acquired_too_far" msgid="2922278214231064859">"Aproxime o telemóvel"</string> + <string name="face_acquired_too_far" msgid="2922278214231064859">"Aproxime o telemóvel do rosto"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Mova o telemóvel mais para cima"</string> <string name="face_acquired_too_low" msgid="4075391872960840081">"Mova o telemóvel mais para baixo"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Mova o telemóvel para a sua esquerda"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferência de região"</string> <string name="search_language_hint" msgid="7004225294308793583">"Intr. nome do idioma"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugeridos"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Idiomas sugeridos"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Regiões sugeridas"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Todos os idiomas"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Todas as regiões"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Pesquisa"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Saber mais"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"As notificações melhoradas substituíram as notificações adaptáveis do Android no Android 12. Esta funcionalidade mostra ações e respostas sugeridas e organiza as suas notificações.\n\nAs notificações melhoradas podem aceder a todo o conteúdo das notificações, incluindo informações pessoais como nomes de contactos e mensagens. Esta funcionalidade também pode ignorar ou responder a notificações, como atender chamadas telefónicas, e controlar o modo Não incomodar."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificação de informações do Modo rotina"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Pode ficar sem bateria antes do carregamento habitual"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Poupança de bateria ativada para prolongar a duração da bateria"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Poupança de bateria ativada"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reduzir a utilização da bateria para prolongar a autonomia da mesma"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Poupança de bateria"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"A Poupança de bateria está desativada"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"O telemóvel tem carga suficiente. As funcionalidades já não estão restritas."</string> diff --git a/core/res/res/values-pt/strings.xml b/core/res/res/values-pt/strings.xml index 029099b65e8d..a02c200c0f4f 100644 --- a/core/res/res/values-pt/strings.xml +++ b/core/res/res/values-pt/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Sem título>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nenhum número de telefone)"</string> @@ -638,7 +633,7 @@ <string name="face_acquired_too_bright" msgid="8070756048978079164">"Muito iluminado. Diminua a iluminação."</string> <string name="face_acquired_too_dark" msgid="7919016380747701228">"Use uma iluminação mais intensa"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Afaste o smartphone"</string> - <string name="face_acquired_too_far" msgid="2922278214231064859">"Aproxime o smartphone"</string> + <string name="face_acquired_too_far" msgid="2922278214231064859">"Aproxime o smartphone do seu rosto"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Mova o smartphone para cima"</string> <string name="face_acquired_too_low" msgid="4075391872960840081">"Mova o smartphone para baixo"</string> <string name="face_acquired_too_right" msgid="6245286514593540859">"Mova o smartphone para a esquerda"</string> @@ -649,9 +644,9 @@ <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Registre seu rosto novamente."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Não foi possível reconhecer o rosto Tente de novo."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Mude a posição da cabeça ligeiramente"</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Olhe mais diretamente para o smartphone"</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Olhe mais diretamente para o smartphone"</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Olhe mais diretamente para o smartphone"</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Olhe diretamente para o smartphone"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Olhe diretamente para o smartphone"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Olhe diretamente para o smartphone"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Remova tudo que esteja ocultando seu rosto."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Limpe a parte superior da tela, inclusive a barra preta"</string> <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"Seu rosto precisa estar completamente visível"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferência de região"</string> <string name="search_language_hint" msgid="7004225294308793583">"Digitar nome do idioma"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugeridos"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Idiomas sugeridos"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Regiões sugeridas"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Todos os idiomas"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Todas as regiões"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Pesquisa"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Saiba mais"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"No Android 12, as notificações avançadas substituíram as notificações adaptáveis. Esse recurso mostra ações e respostas sugeridas, além de organizar suas notificações.\n\nAs notificações avançadas podem acessar o conteúdo das notificações, incluindo informações pessoais como nomes de contatos e mensagens. Elas também podem dispensar ou responder às notificações, como atender ligações telefônicas e controlar o Não perturbe."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificação de informação do modo rotina"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"A bateria pode acabar antes da recarga normal"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"A Economia de bateria foi ativada para aumentar a duração da carga"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Economia de bateria ativada"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Reduzindo o uso da bateria para prolongar a duração dela"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Economia de bateria"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"\"Economia de bateria\" desativada"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Não há carga suficiente no smartphone. Os recursos não estão mais restritos."</string> diff --git a/core/res/res/values-ro/strings.xml b/core/res/res/values-ro/strings.xml index e8353dd363ab..55ba527f46f0 100644 --- a/core/res/res/values-ro/strings.xml +++ b/core/res/res/values-ro/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TO"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PO"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Fără titlu>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Niciun număr de telefon)"</string> @@ -1925,6 +1920,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Regiunea preferată"</string> <string name="search_language_hint" msgid="7004225294308793583">"Numele limbii"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugerate"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Limbi sugerate"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Regiuni sugerate"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Toate limbile"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Toate regiunile"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Căutați"</string> @@ -2079,8 +2076,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Aflați mai multe"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Notificările optimizate au înlocuit Notificările adaptive Android de pe Android 12. Această funcție afișează acțiuni și răspunsuri sugerate și vă organizează notificările.\n\nNotificările optimizate pot accesa conținutul notificărilor, inclusiv informații cu caracter personal, precum mesajele și numele persoanelor de contact. În plus, funcția poate să închidă sau să răspundă la notificări, de exemplu, să răspundă la apeluri telefonice și să gestioneze opțiunea Nu deranja."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notificare pentru informații despre modul Rutină"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Bateria se poate descărca înainte de încărcarea obișnuită"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Economisirea bateriei este activată pentru a prelungi durata de funcționare a bateriei"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Economisirea bateriei este activată"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Se reduce utilizarea bateriei pentru a-i extinde autonomia"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Economisirea bateriei"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Economisirea bateriei a fost dezactivată"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefonul este încărcat suficient. Funcțiile nu mai sunt limitate."</string> diff --git a/core/res/res/values-ru/strings.xml b/core/res/res/values-ru/strings.xml index 8be5450d62bb..1ef3c0cf8b9e 100644 --- a/core/res/res/values-ru/strings.xml +++ b/core/res/res/values-ru/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"Б"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"КБ"</string> - <string name="megabyteShort" msgid="6649361267635823443">"МБ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ГБ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TБ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"ПБ"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Без названия>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Нет номера телефона)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Региональные настройки"</string> <string name="search_language_hint" msgid="7004225294308793583">"Введите название языка"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Рекомендуемые"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Рекомендуемые языки"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Предлагаемые регионы"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Все языки"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Все регионы"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Поиск"</string> @@ -2080,8 +2077,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Подробнее"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"В Android 12 доступны улучшенные уведомления. Эта функция упорядочивает все ваши уведомления и подсказывает ответы и действия.\n\nЕй доступно содержимое всех уведомлений, в том числе имена контактов, сообщения и другие личные данные. Также эта функция может закрывать уведомления и нажимать кнопки в них, например отвечать на звонки и управлять режимом \"Не беспокоить\"."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Уведомление о батарее"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Батарея может разрядиться"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Чтобы увеличить время работы от батареи, был включен режим энергосбережения."</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Режим энергосбережения"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Режим энергосбережения отключен"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Телефон заряжен достаточно. Функции больше не ограничены."</string> diff --git a/core/res/res/values-si/strings.xml b/core/res/res/values-si/strings.xml index e8d2be9a87cf..3f0d0e57bdb1 100644 --- a/core/res/res/values-si/strings.xml +++ b/core/res/res/values-si/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<නම් යොදා නැත>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(දුරකථන අංකයක් නොමැත)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ප්රදේශ මනාපය"</string> <string name="search_language_hint" msgid="7004225294308793583">"භාෂා නම ටයිප් කරන්න"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"යෝජිත"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"යෝජිත භාෂා"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"යෝජිත කලාප"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"සියලු භාෂා"</string> <string name="region_picker_section_all" msgid="756441309928774155">"සියලු ප්රදේශ"</string> <string name="locale_search_menu" msgid="6258090710176422934">"සෙවීම"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"තව දැන ගන්න"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"වැඩිදියුණු කළ දැනුම්දීම් Android 12 හි Android අනුවර්තී දැනුම්දීම් ප්රතිස්ථාපනය කරයි. මෙම විශේෂාංගය යෝජිත ක්රියා සහ පිළිතුරු පෙන්වන අතර, ඔබගේ දැනුම්දීම් සංවිධානය කරයි.\n\nවැඩිදියුණු කළ දැනුම්දීම්වලට සම්බන්ධතා නම් සහ පණිවිඩ වැනි පුද්ගලික තොරතුරු ඇතුළුව, සියලු දැනුම්දීම් අන්තර්ගතය වෙත ප්රවේශ විය හැකිය. මෙම විශේෂාංගයට දැනුම්දීම් ඉවත දැමීමට හෝ දුරකථන ඇමතුම්වලට පිළිතුරු දීම සහ බාධා නොකිරීම පාලනය කිරීම වැනි, දැනුම්දීම්වලට ප්රතිචාර දැක්වීමටද හැකිය."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"දිනචරියා ප්රකාර තතු දැනුම්දීම"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"බැටරිය සුපුරුදු ආරෝපණයට පෙර ඉවර විය හැක"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"බැටරි සුරැකුම බැටරි ආයු කාලය දීර්ඝ කිරීමට සක්රිය කෙරිණි"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"බැටරි සුරැකුම ක්රියාත්මකයි"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"බැටරි ආයු කාලය දිගු කිරීම සඳහා බැටරි භාවිතය අඩු කිරීම"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"බැටරි සුරැකුම"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"බැටරි සුරැකුම ක්රියාවිරහිත කර ඇත"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"දුරකථනයට ප්රමාණවත් ආරෝපණයක් තිබේ. විශේෂාංග තවදුරටත් සීමා කර නැත."</string> diff --git a/core/res/res/values-sk/strings.xml b/core/res/res/values-sk/strings.xml index ce8837b14011..fa4f98a3c40a 100644 --- a/core/res/res/values-sk/strings.xml +++ b/core/res/res/values-sk/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Bez mena>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(žiadne telefónne číslo)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferovaný región"</string> <string name="search_language_hint" msgid="7004225294308793583">"Zadajte názov jazyka"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Navrhované"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Navrhované jazyky"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Navrhované oblasti"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Všetky jazyky"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Všetky oblasti"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Vyhľadávanie"</string> @@ -2080,8 +2077,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Ďalšie informácie"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Adaptívne upozornenia Androidu boli v Androide 12 nahradené zlepšenými upozorneniami. Táto funkcia zobrazuje navrhované akcie aj odpovede a organizuje vaše upozornenia.\n\nZlepšené upozornenia majú prístup k obsahu upozornení vrátane osobných údajov, ako sú mená kontaktov a správy. Táto funkcia tiež môže zavrieť upozornenia alebo na ne reagovať, napríklad prijať telefonáty a ovládať režim bez vyrušení."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Upozornenie s informáciami o rutinnom režime"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Batéria sa môže vybiť pred obvyklým nabitím"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Bol aktivovaný šetrič batérie na predĺženie výdrže batérie"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Bol zapnutý šetrič batérie"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Zníženie spotreby batérie predlžuje jej výdrž"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Šetrič batérie"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Šetrič batérie bol vypnutý."</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefón je dostatočne nabitý. Funkcie už nie sú obmedzené."</string> diff --git a/core/res/res/values-sl/strings.xml b/core/res/res/values-sl/strings.xml index fd1070c59a64..7cbd93ea4e58 100644 --- a/core/res/res/values-sl/strings.xml +++ b/core/res/res/values-sl/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Brez naslova>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Ni telefonske številke)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Nastavitev območja"</string> <string name="search_language_hint" msgid="7004225294308793583">"Vnesite ime jezika"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Predlagano"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Predlagani jeziki"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Predlagana območja"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Vsi jeziki"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Vse regije"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Išči"</string> @@ -2080,8 +2077,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Več o tem"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Pametna obvestila so v Androidu 12 zamenjala prilagodljiva obvestila Android. Ta funkcija prikazuje predlagana dejanja in odgovore ter organizira vaša obvestila.\n\nPametna obvestila lahko preberejo vso vsebino obvestil, vključno z osebnimi podatki, kot so imena in sporočila stikov. Ta funkcija lahko tudi opusti obvestila ali se odziva nanje (npr. sprejema telefonske klice in upravlja način Ne moti)."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Rutinsko informativno obvestilo o načinu delovanja"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Baterija se bo morda izpraznila, preden jo običajno priključite na polnjenje"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Vklopilo se je varčevanje z energijo baterije za podaljšanje časa delovanja baterije"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Varčevanje z energijo baterije"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Varčevanje z energijo baterije je izklopljeno"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Baterija v telefonu je dovolj napolnjena. Funkcije niso več omejene."</string> diff --git a/core/res/res/values-sq/strings.xml b/core/res/res/values-sq/strings.xml index 4e533527dc60..37092da1628f 100644 --- a/core/res/res/values-sq/strings.xml +++ b/core/res/res/values-sq/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"terabajt"</string> - <string name="petabyteShort" msgid="5651571254228534832">"petabajt"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Pa titull>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Nuk ka numër telefoni)"</string> @@ -649,9 +644,9 @@ <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Regjistroje përsëri fytyrën tënde."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Fytyra nuk mund të njihet. Provo sërish."</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"Ndrysho pak pozicionin e kokës"</string> - <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Shiko më shumë drejtpërdrejt telefonit"</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Shiko më shumë drejtpërdrejt telefonit"</string> - <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Shiko më shumë drejtpërdrejt telefonit"</string> + <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"Shiko më drejtpërdrejt telefonin"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"Shiko më drejtpërdrejt telefonin"</string> + <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Shiko më drejtpërdrejt telefonin"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Hiq gjithçka që fsheh fytyrën tënde."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Pastro kreun e ekranit, duke përfshirë shiritin e zi"</string> <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"Fytyra jote duhet të jetë plotësisht e dukshme"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Preferenca e rajonit"</string> <string name="search_language_hint" msgid="7004225294308793583">"Shkruaj emrin e gjuhës"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Sugjeruar"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Gjuhët e sugjeruara"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Rajonet e sugjeruara"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Të gjitha gjuhët"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Të gjitha rajonet"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Kërko"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Mëso më shumë"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Njoftimet e përmirësuara kanë zëvendësuar \"Njoftimet me përshtatje të Android\" në Android 12. Kjo veçori shfaq veprimet dhe përgjigjet e sugjeruara dhe organizon njoftimet e tua.\n\nNjoftimet e përmirësuara mund të kenë qasje te përmbajtja e njoftimeve, duke përfshirë informacionet personale si emrat e kontakteve dhe mesazhet. Kjo veçori mund t\'i heqë ose të përgjigjet po ashtu për njoftimet, si p.sh. t\'u përgjigjet telefonatave, dhe të kontrollojë modalitetin \"Mos shqetëso\"."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Njoftimi i informacionit të \"Modalitetit rutinë\""</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Bateria mund të mbarojë përpara ngarkimit të zakonshëm"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"\"Kursyesi i baterisë\" u aktivizua për të rritur kohëzgjatjen e baterisë"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"\"Kursyesi i baterisë\" u aktivizua"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Po reduktohet përdorimi i baterisë për të rritur kohëzgjatjen e baterisë"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Kursyesi i baterisë"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"\"Kursyesi i baterisë\" është çaktivizuar"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefoni ka nivel të mjaftueshëm baterie. Funksionet nuk janë më të kufizuara."</string> diff --git a/core/res/res/values-sr/strings.xml b/core/res/res/values-sr/strings.xml index 8c6689ac9c7e..a9cd08937afd 100644 --- a/core/res/res/values-sr/strings.xml +++ b/core/res/res/values-sr/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Без имена>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Нема броја телефона)"</string> @@ -1925,6 +1920,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Подешавање региона"</string> <string name="search_language_hint" msgid="7004225294308793583">"Унесите назив језика"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Предложени"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Предложени језици"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Предложени региони"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Сви језици"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Сви региони"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Претражи"</string> @@ -2079,8 +2076,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Сазнајте више"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Побољшана обавештења су заменила Android прилагодљива обавештења у Android-у 12. Ова функција показује предложене радње и одговоре, и организује обавештења.\n\nПобољшана обавештења могу да приступају садржају обавештења, укључујући личне податке попут имена контаката и порука. Ова функција може и да одбацује обавештења или да одговара на њих, на пример, да се јавља на телефонске позиве и контролише режим Не узнемиравај."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Обавештење о информацијама Рутинског режима"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Батерија ће се можда испразнити пре уобичајеног пуњења"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Уштеда батерије је активирана да би се продужило трајање батерије"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Уштеда батерије је укључена"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Смањује се потрошња батерије да би се продужило њено трајање"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Уштеда батерије"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Уштеда батерије је искључена"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Батерија телефона је довољно напуњена. Функције више нису ограничене."</string> diff --git a/core/res/res/values-sv/strings.xml b/core/res/res/values-sv/strings.xml index 40a8c6129038..c8d982dcdf81 100644 --- a/core/res/res/values-sv/strings.xml +++ b/core/res/res/values-sv/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Okänd>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Inget telefonnummer)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Regionsinställningar"</string> <string name="search_language_hint" msgid="7004225294308793583">"Ange språk"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Förslag"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Föreslagna språk"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Föreslagna regioner"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Alla språk"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Alla regioner"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Sök"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Läs mer"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Förbättrade aviseringar har ersatt Anpassade aviseringar för Android i Android 12. Den här funktionen visar förslag på åtgärder och svar och organiserar dina aviseringar.\n\nFörbättrade aviseringar har åtkomst till allt innehåll i aviseringar, inklusive personliga uppgifter som namn på kontakter och meddelanden. Funktionen kan även ignorera aviseringar eller utföra åtgärder utifrån dem, till exempel svara på telefonsamtal och styra Stör ej."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Avisering om rutinläge"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Batteriet kan ta slut innan du brukar ladda det"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Batterisparläget har aktiverats för att utöka batteritiden"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Batterisparläge"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Batterisparläget har inaktiverats"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefonen har laddats tillräckligt. Funktioner begränsas inte längre."</string> diff --git a/core/res/res/values-sw/strings.xml b/core/res/res/values-sw/strings.xml index a3a74619658c..2d7ef7cb336a 100644 --- a/core/res/res/values-sw/strings.xml +++ b/core/res/res/values-sw/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="UNIT">%2$s</xliff:g> <xliff:g id="NUMBER">%1$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Haina jina>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Hakuna nambari ya simu)"</string> @@ -644,7 +639,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Sogeza simu upande wako wa kushoto"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Sogeza simu upande wako wa kulia"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Tafadhali angalia kifaa chako moja kwa moja."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"Imeshindwa kuona uso wako. Shikilia simu yako katika usawa wa macho."</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Imeshindwa kuona uso wako. Shikilia simu yako ikilingana na macho."</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Inatikisika sana. Ishike simu iwe thabiti."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Tafadhali sajili uso wako tena."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Imeshindwa kutambua uso. Jaribu tena."</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Mapendeleo ya eneo"</string> <string name="search_language_hint" msgid="7004225294308793583">"Weka jina la lugha"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Zinazopendekezwa"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Lugha zinazopendekezwa"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Maeneo yanayopendekezwa"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Lugha zote"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Maeneo yote"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Tafuta"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Pata maelezo zaidi"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Kipengele cha Arifa Zilizoboreshwa kilichukua nafasi ya Arifa Zinazojirekebisha za Android katika Android 12. Kipengele hiki kinaonyesha majibu na vitendo vinavyopendekezwa na kupanga arifa zako.\n\nKipengele cha Arifa zilizoboreshwa kinaweza kufikia maudhui ya arifa, ikiwa ni pamoja na taarifa binafsi kama vile majina ya anwani na ujumbe. Kipengele hiki kinaweza pia kuondoa au kujibu arifa, kama vile kujibu simu na kudhibiti kipengele cha Usinisumbue."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Arifa ya maelezo ya Hali ya Kawaida"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Huenda betri itakwisha chaji mapema"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Imewasha Kiokoa Betri ili kurefusha muda wa matumizi ya betri"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Kiokoa betri"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Kiokoa Betri kimezimwa"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Simu ina chaji ya kutosha. Vipengele havizuiliwi tena."</string> diff --git a/core/res/res/values-ta/strings.xml b/core/res/res/values-ta/strings.xml index f657bd7620b5..5acfd9306132 100644 --- a/core/res/res/values-ta/strings.xml +++ b/core/res/res/values-ta/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"பை."</string> - <string name="kilobyteShort" msgid="2214285521564195803">"கி.பை."</string> - <string name="megabyteShort" msgid="6649361267635823443">"மெ.பை."</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ஜி.பை."</string> - <string name="terabyteShort" msgid="1822367128583886496">"டெ.பை."</string> - <string name="petabyteShort" msgid="5651571254228534832">"பெ.பை."</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<பெயரிடப்படாதது>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(தொலைபேசி எண் இல்லை)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"மண்டல விருப்பம்"</string> <string name="search_language_hint" msgid="7004225294308793583">"மொழி பெயரை உள்ளிடுக"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"பரிந்துரைகள்"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"பரிந்துரைக்கப்படும் மொழிகள்"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"பரிந்துரைக்கப்படும் பகுதிகள்"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"எல்லா மொழிகளும்"</string> <string name="region_picker_section_all" msgid="756441309928774155">"எல்லா மண்டலங்களும்"</string> <string name="locale_search_menu" msgid="6258090710176422934">"தேடு"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"மேலும் அறிக"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 பதிப்பில் \'Android சூழலுக்கேற்ற அறிவிப்புகள்\' அம்சத்திற்குப் பதிலாக \'மேம்பட்ட அறிவிப்புகள்\' மாற்றப்பட்டுள்ளது. இந்த அம்சம், பரிந்துரைக்கப்படும் செயல்களையும் பதில்களையும் காட்டுவதுடன் உங்கள் அறிவிப்புகளையும் ஒழுங்கமைக்கும்.\n\nதொடர்புகளின் பெயர்கள், மெசேஜ்கள் போன்ற தனிப்பட்ட தகவல்கள் உட்பட அனைத்து அறிவிப்பு உள்ளடக்கத்தையும் \'மேம்பட்ட அறிவிப்புகள்\' அணுக முடியும். மேலும் இந்த அம்சத்தால் அறிவிப்புகளை நிராகரிக்கவும் அவற்றுக்குப் பதிலளிக்கவும் முடியும் (அழைப்புகளுக்குப் பதிலளிப்பது, \'தொந்தரவு செய்ய வேண்டாம்\' அம்சத்தைக் கட்டுப்படுத்துவது போன்றவை)."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"வழக்கமான பேட்டரி சேமிப்பானுக்கான விவர அறிவிப்பு"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"வழக்கமாகச் சார்ஜ் செய்வதற்கு முன்பே பேட்டரி தீர்ந்துபோகக்கூடும்"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"பேட்டரி ஆயுளை நீட்டிக்க பேட்டரி சேமிப்பான் இயக்கப்பட்டுள்ளது"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"பேட்டரி சேமிப்பு"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"பேட்டரி சேமிப்பான் ஆஃப் செய்யப்பட்டுள்ளது"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"மொபைலில் போதுமான சார்ஜ் உள்ளது. அம்சங்கள் இனி தடையின்றி இயங்கும்."</string> diff --git a/core/res/res/values-te/strings.xml b/core/res/res/values-te/strings.xml index 38d9d9aee8b8..6882e3da9a41 100644 --- a/core/res/res/values-te/strings.xml +++ b/core/res/res/values-te/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<శీర్షిక లేనిది>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ఫోన్ నంబర్ లేదు)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ప్రాంతం ప్రాధాన్యత"</string> <string name="search_language_hint" msgid="7004225294308793583">"భాష పేరును టైప్ చేయండి"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"సూచించినవి"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"సూచించిన భాషలు"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"సూచించిన ప్రాంతాలు"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"అన్ని భాషలు"</string> <string name="region_picker_section_all" msgid="756441309928774155">"అన్ని ప్రాంతాలు"</string> <string name="locale_search_menu" msgid="6258090710176422934">"సెర్చ్"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"మరింత తెలుసుకోండి"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12లో Android అనుకూల నోటిఫికేషన్లను, మెరుగైన నోటిఫికేషన్లు రీప్లేస్ చేశాయి. ఈ ఫీచర్, సూచించిన చర్యలను, రిప్లయిలను చూపించి, మీ నోటిఫికేషన్లను ఆర్గనైజ్ చేస్తుంది.\n\nకాంటాక్ట్ పేర్లు, మెసేజ్లు లాంటి వ్యక్తిగత సమాచారంతో పాటు నోటిఫికేషన్ కంటెంట్ను మెరుగైన నోటిఫికేషన్లు యాక్సెస్ చేస్తాయి. ఫోన్ కాల్స్కు సమాధానమివ్వడం, \'అంతరాయం కలిగించవద్దు\' ఆప్షన్ను కంట్రోల్ చేయడం వంటి నోటిఫికేషన్లను విస్మరించడం లేదా వాటికి ప్రతిస్పందించడం కూడా ఈ ఫీచర్ చేయగలదు."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"రొటీన్ మోడ్ సమాచార నోటిఫికేషన్"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"మామూలుగా ఛార్జ్ చేసేలోపు బ్యాటరీ ఖాళీ కావచ్చు"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"బ్యాటరీ జీవితకాలాన్ని పెంచడానికి బ్యాటరీ సేవర్ యాక్టివేట్ చేయబడింది"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"బ్యాటరీ సేవర్ ఆన్ చేయబడింది"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"బ్యాటరీ జీవితకాలాన్ని పొడిగించడానికి బ్యాటరీ వినియోగాన్ని తగ్గించడం"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"బ్యాటరీ సేవర్"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"బ్యాటరీ సేవర్ ఆఫ్ చేయబడింది"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"ఫోన్కు తగినంత ఛార్జింగ్ ఉంది. ఫీచర్లు ఇప్పటి నుండి పరిమితం చేయబడవు."</string> diff --git a/core/res/res/values-th/strings.xml b/core/res/res/values-th/strings.xml index 27436e14325e..34d2dbf58003 100644 --- a/core/res/res/values-th/strings.xml +++ b/core/res/res/values-th/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<ไม่มีชื่อ>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(ไม่มีหมายเลขโทรศัพท์)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"ค่ากำหนดภูมิภาค"</string> <string name="search_language_hint" msgid="7004225294308793583">"พิมพ์ชื่อภาษา"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"แนะนำ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"ภาษาที่แนะนำ"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"ภูมิภาคที่แนะนำ"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"ทุกภาษา"</string> <string name="region_picker_section_all" msgid="756441309928774155">"ภูมิภาคทั้งหมด"</string> <string name="locale_search_menu" msgid="6258090710176422934">"ค้นหา"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"ดูข้อมูลเพิ่มเติม"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"การแจ้งเตือนที่เพิ่มประสิทธิภาพมาแทนที่การแจ้งเตือนแบบปรับอัตโนมัติของ Android ใน Android 12 ฟีเจอร์นี้จะแสดงการดำเนินการและการตอบกลับที่แนะนำ ตลอดจนจัดระเบียบการแจ้งเตือน\n\nการแจ้งเตือนที่เพิ่มประสิทธิภาพจะเข้าถึงเนื้อหาของการแจ้งเตือนได้ ซึ่งรวมถึงข้อมูลส่วนบุคคล เช่น ชื่อผู้ติดต่อและข้อความ ฟีเจอร์นี้ยังปิดหรือตอบสนองต่อการแจ้งเตือนได้ด้วย เช่น การรับสายโทรศัพท์และการควบคุมโหมดห้ามรบกวน"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"การแจ้งเตือนข้อมูลโหมดกิจวัตร"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"แบตเตอรี่อาจหมดก่อนการชาร์จปกติ"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"เปิดใช้งานโหมดประหยัดแบตเตอรี่แล้วเพื่อยืดอายุการใช้งานแบตเตอรี่"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"โหมดประหยัดแบตเตอรี่"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"ปิดโหมดประหยัดแบตเตอรี่แล้ว"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"โทรศัพท์มีแบตเตอรี่เพียงพอ ไม่มีการจำกัดฟีเจอร์แล้ว"</string> diff --git a/core/res/res/values-tl/strings.xml b/core/res/res/values-tl/strings.xml index 0383ae673253..21c18beada62 100644 --- a/core/res/res/values-tl/strings.xml +++ b/core/res/res/values-tl/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Walang pamagat>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Walang numero ng telepono)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Kagustuhan sa rehiyon"</string> <string name="search_language_hint" msgid="7004225294308793583">"I-type ang wika"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Iminumungkahi"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Mga iminumungkahing wika"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Mga iminumungkahing rehiyon"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Lahat ng wika"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Lahat ng rehiyon"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Maghanap"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Matuto pa"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Pinalitan ng Mga pinahusay na notification ang Mga Adaptive na Notification ng Android sa Android 12. Nagpapakita ng mga iminumungkahing pagkilos at sagot ang feature na ito, at isinasaayos nito ang iyong mga notification.\n\nMaa-access ng Mga pinahusay na notification ang content ng notification, kabilang ang personal na impormasyon gaya ng mga pangalan ng contact at mensahe. Magagawa rin ng feature na ito na i-dismiss o tugunan ang mga notification, gaya ng pagsagot sa mga tawag sa telepono, at kontrolin ang Huwag Istorbohin."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Notification ng impormasyon ng Routine Mode"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Maaaring maubos ang baterya bago ang karaniwang pag-charge"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Na-activate ang Pantipid ng Baterya para patagalin ang buhay ng baterya"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Pantipid ng Baterya"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Na-off ang Pantipid ng Baterya"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"May sapat na charge ang telepono. Hindi na pinaghihigpitan ang mga feature."</string> diff --git a/core/res/res/values-tr/strings.xml b/core/res/res/values-tr/strings.xml index c67d8fbb82ba..29e6811f8c43 100644 --- a/core/res/res/values-tr/strings.xml +++ b/core/res/res/values-tr/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Adsız>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Telefon numarası yok)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Bölge tercihi"</string> <string name="search_language_hint" msgid="7004225294308793583">"Dil adını yazın"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Önerilen"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Önerilen diller"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Önerilen bölgeler"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Tüm diller"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Tüm bölgeler"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Ara"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Daha fazla bilgi"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Gelişmiş bildirimler, Android 12\'de Android Uyarlanabilir Bildirimler\'in yerini aldı. Bu özellik, önerilen işlem ve yanıtları gösterir ve bildirimlerinizi organize eder.\n\nGelişmiş bildirimler, kişiler ve mesajlar gibi kişisel bilgiler dahil olmak üzere tüm bildirim içeriklerine erişebilir. Bu özellik ayrıca bildirimleri kapatabilir veya telefon aramalarını yanıtlamak ve Rahatsız Etmeyin modunu kontrol etmek gibi işlemlerle bildirimlere yanıt verebilir."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Rutin Modu bilgi bildirimi"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Pil normal şarjdan önce bitebilir"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Pilin ömrünü uzatmak için Pil Tasarrufu etkinleştirildi"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Pil Tasarrufu"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Pil Tasarrufu kapatıldı"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefon yeterince şarj oldu. Özellikler artık kısıtlanmış değil."</string> diff --git a/core/res/res/values-uk/strings.xml b/core/res/res/values-uk/strings.xml index 547b471babc3..72b90b21072b 100644 --- a/core/res/res/values-uk/strings.xml +++ b/core/res/res/values-uk/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"Б"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"КБ"</string> - <string name="megabyteShort" msgid="6649361267635823443">"МБ"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"ГБ"</string> - <string name="terabyteShort" msgid="1822367128583886496">"ТБ"</string> - <string name="petabyteShort" msgid="5651571254228534832">"Пб"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Без назви>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Немає номера тел.)"</string> @@ -1926,6 +1921,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Вибір регіону"</string> <string name="search_language_hint" msgid="7004225294308793583">"Введіть назву мови"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Рекомендовані"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Пропоновані мови"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Пропоновані регіони"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Усі мови"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Усі регіони"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Пошук"</string> @@ -2080,8 +2077,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Докладніше"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"В Android 12 адаптивні сповіщення замінено на покращені. Ця функція допомагає впорядковувати сповіщення й показує в них пропоновані дії та відповіді.\n\nПокращені сповіщення надають доступ до вмісту сповіщень, зокрема до такої особистої інформації, як повідомлення й імена контактів. Ця функція може автоматично закривати сповіщення чи реагувати на них, наприклад відповідати на телефонні дзвінки або керувати режимом \"Не турбувати\"."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Сповіщення про послідовнсть дій"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Акумулятор може розрядитися раніше ніж зазвичай"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Режим енергозбереження активовано для збільшення часу роботи акумулятора"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Режим енергозбереження"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Режим енергозбереження вимкнено."</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Телефон має достатньо заряду акумулятора. Функції вже не обмежено."</string> diff --git a/core/res/res/values-ur/strings.xml b/core/res/res/values-ur/strings.xml index 3be4f2be0c2c..221c5b0de7d2 100644 --- a/core/res/res/values-ur/strings.xml +++ b/core/res/res/values-ur/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"بائٹس"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">">بلا عنوان<"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(کوئی فون نمبر نہیں ہے)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"علاقہ کی ترجیح"</string> <string name="search_language_hint" msgid="7004225294308793583">"زبان کا نام ٹائپ کریں"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"تجویز کردہ"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"تجویز کردہ زبانیں"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"تجویز کردہ علاقے"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"سبھی زبانیں"</string> <string name="region_picker_section_all" msgid="756441309928774155">"تمام علاقے"</string> <string name="locale_search_menu" msgid="6258090710176422934">"تلاش"</string> @@ -2078,8 +2075,10 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"مزید جانیں"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 میں بہتر کردہ اطلاعات کو Android اڈاپٹیو کی اطلاعات سے تبدیل کیا گیا۔ یہ خصوصیت تجویز کردہ کارروائیاں اور جوابات دکھاتی ہے اور آپ کی اطلاعات کا نظم کرتی ہے۔\n\nبہتر کردہ اطلاعات رابطوں کے نام اور پیغامات جیسی ذاتی معلومات سمیت اطلاعات کے مواد تک رسائی حاصل کر سکتی ہیں۔ یہ خصوصیت اطلاعات کو برخاست کر سکتی ہے یا ان کا جواب بھی دے سکتی ہے جیسے فون کالز کا جواب دینا اور ڈسٹرب نہ کریں کو کنٹرول کرنا۔"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"روٹین موڈ معلومات کی اطلاع"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"معمول چارج سے پہلے بیٹری ختم ہو سکتی ہے"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"بیٹری لائف کو بڑھانے کے لیے بیٹری سیور کو فعال کر دیا گیا ہے"</string> + <!-- no translation found for dynamic_mode_notification_title (1388718452788985481) --> + <skip /> + <!-- no translation found for dynamic_mode_notification_summary (1639031262484979689) --> + <skip /> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"بیٹری سیور"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"بیٹری سیور کو آف کر دیا گیا"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"فون میں کافی چارج ہے۔ خصوصیات پر اب پابندی نہیں ہے۔"</string> diff --git a/core/res/res/values-uz/strings.xml b/core/res/res/values-uz/strings.xml index f562356cdc85..8cba718f2821 100644 --- a/core/res/res/values-uz/strings.xml +++ b/core/res/res/values-uz/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Nomsiz>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Telefon raqami yo‘q)"</string> @@ -636,7 +631,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"Xizmat koʻrsatish markaziga murojaat qiling."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"Yuzingiz modeli yaratilmadi. Qayta urining."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"Juda yorqin. Biroz soyaroq joy tanlang."</string> - <string name="face_acquired_too_dark" msgid="7919016380747701228">"Atrofingizni yoriting"</string> + <string name="face_acquired_too_dark" msgid="7919016380747701228">"Atrofingizni yanada yoriting"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Telefonni biroz uzoqroq tuting"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Telefonni yaqinroq tuting"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Telefonni teparoq tuting"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Hudud sozlamalari"</string> <string name="search_language_hint" msgid="7004225294308793583">"Til nomini kiriting"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Taklif etiladi"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Tavsiya etilgan tillar"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Tavsiya etilgan mintaqalar"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Barcha tillar"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Barcha hududlar"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Qidiruv"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Batafsil"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Android 12 tizimida moslashuvchan bildirishnomalar oʻrniga yangicha bildirishnomalar chiqadi. Bu funksiya amallar va javoblarni taklif qiladi va bildirishnomalaringizni boshqaradi.\n\nYangicha bildirishnomalar barcha bildirishnomalar kontentini, jumladan kontakt nomlari va xabarlar kabi shaxsiy bildirishnomalarni ham oʻqiy oladi. Shuningdek, bu funksiya bildirishnomalarni yopishi yoki telefon chaqiruvlariga javob berishi va Bezovta qilinmasin rejimini boshqarishi mumkin."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Kun tartibi rejimi haqidagi bildirishnoma"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Batareya quvvati odatdagidan ertaroq tugashi mumkin"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Batareya quvvatini uzoqroq vaqtga yetkazish uchun quvvat tejash rejimi yoqildi"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Quvvat tejalishi yoqildi"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Batareya tejalganda batareya quvvati uzoqroq vaqtga yetadi"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Quvvat tejash"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Quvvat tejash rejimi faolsizlantirildi"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Telefon yetarli quvvatlandi. Funksiyalar endi cheklovlarsiz ishlaydi."</string> diff --git a/core/res/res/values-vi/strings.xml b/core/res/res/values-vi/strings.xml index 6ca2979871a1..ce0b715d7c99 100644 --- a/core/res/res/values-vi/strings.xml +++ b/core/res/res/values-vi/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Không có tiêu đề>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Không có số điện thoại nào)"</string> @@ -644,7 +639,7 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"Đưa điện thoại sang bên trái"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"Đưa điện thoại sang bên phải"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"Vui lòng nhìn thẳng vào thiết bị."</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"Không thấy khuôn mặt bạn. Cầm điện thoại ngang tầm mắt"</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"Không phát hiện thấy khuôn mặt của bạn. Hãy cầm điện thoại ngang tầm mắt"</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"Thiết bị di chuyển quá nhiều. Giữ yên thiết bị."</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"Vui lòng đăng ký lại khuôn mặt của bạn."</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"Không thể nhận dạng khuôn mặt. Hãy thử lại."</string> @@ -654,7 +649,7 @@ <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"Nhìn thẳng vào điện thoại"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"Hãy loại bỏ mọi thứ che khuất khuôn mặt bạn."</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"Vệ sinh phần đầu màn hình, bao gồm cả thanh màu đen"</string> - <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"Toàn bộ khuôn mặt của bạn phải được hiển thị"</string> + <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"Bạn cần cho thấy toàn bộ khuôn mặt của mình"</string> <string name="face_acquired_mouth_covering_detected" msgid="615991670821926847">"Toàn bộ khuôn mặt của bạn phải được hiển thị"</string> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"Không thể tạo mẫu khuôn mặt của bạn. Hãy thử lại."</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"Đã phát hiện đeo kính đen. Toàn bộ khuôn mặt của bạn phải được hiển thị."</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Tùy chọn khu vực"</string> <string name="search_language_hint" msgid="7004225294308793583">"Nhập tên ngôn ngữ"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Đề xuất"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Ngôn ngữ đề xuất"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Khu vực đề xuất"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Tất cả ngôn ngữ"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Tất cả khu vực"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Tìm kiếm"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Tìm hiểu thêm"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Thông báo nâng cao đã thay thế Thông báo thích ứng trên Android trong Android 12. Tính năng này hiển thị những thao tác và câu trả lời đề xuất, đồng thời sắp xếp các thông báo của bạn.\n\nThông báo nâng cao có thể đọc mọi nội dung thông báo, bao gồm cả thông tin cá nhân như tên liên hệ và tin nhắn. Tính năng này cũng có thể đóng hoặc phản hồi các thông báo, chẳng hạn như trả lời cuộc gọi điện thoại, đồng thời có thể kiểm soát chế độ Không làm phiền."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Thông báo cung cấp thông tin về chế độ sạc thông thường"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Pin có thể hết trước khi sạc bình thường"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Trình tiết kiệm pin được kích hoạt để kéo dài thời lượng pin"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Đã bật Trình tiết kiệm pin"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Giảm mức sử dụng pin để kéo dài tuổi thọ pin"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Trình tiết kiệm pin"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Trình tiết kiệm pin đã tắt"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Điện thoại còn đủ pin. Các tính năng không bị hạn chế nữa."</string> diff --git a/core/res/res/values-zh-rCN/strings.xml b/core/res/res/values-zh-rCN/strings.xml index a3fd21ba3733..4257f7830cf3 100644 --- a/core/res/res/values-zh-rCN/strings.xml +++ b/core/res/res/values-zh-rCN/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<未命名>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(无电话号码)"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"区域偏好设置"</string> <string name="search_language_hint" msgid="7004225294308793583">"输入语言名称"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"建议语言"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"建议的语言"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"建议的地区"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"所有语言"</string> <string name="region_picker_section_all" msgid="756441309928774155">"所有国家/地区"</string> <string name="locale_search_menu" msgid="6258090710176422934">"搜索"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"了解详情"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"在 Android 12 中,增强型通知功能取代了 Android 自适应通知功能。增强型通知功能可以显示建议的操作和回复,并可将通知整理得井井有条。\n\n增强型通知功能可以读取通知内容,包括联系人名称和消息等个人信息。该功能还可以关闭通知或对通知做出回应,例如接听来电以及控制勿扰模式。"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"日常安排模式信息通知"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"电池电量可能会在您平时的充电时间之前耗尽"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"已启用省电模式以延长电池续航时间"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"省电模式已开启"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"降低电池用量以延长电池续航时间"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"省电模式"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"省电模式已关闭"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"手机电量充足。各项功能不再受限。"</string> diff --git a/core/res/res/values-zh-rHK/strings.xml b/core/res/res/values-zh-rHK/strings.xml index cdb797227fa4..6374db52c8a3 100644 --- a/core/res/res/values-zh-rHK/strings.xml +++ b/core/res/res/values-zh-rHK/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<未命名>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(沒有電話號碼)"</string> @@ -636,7 +631,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"請諮詢維修服務供應商。"</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"無法建立面部模型,請再試一次。"</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"影像太亮。請嘗試在更暗的環境下使用。"</string> - <string name="face_acquired_too_dark" msgid="7919016380747701228">"請嘗試在更明亮的環境下使用"</string> + <string name="face_acquired_too_dark" msgid="7919016380747701228">"請試用更充足的光線"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"請將手機移遠一點"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"請將手機移近一點"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"請將手機向上移"</string> @@ -644,17 +639,17 @@ <string name="face_acquired_too_right" msgid="6245286514593540859">"請將手機向左移"</string> <string name="face_acquired_too_left" msgid="9201762240918405486">"請將手機向右移"</string> <string name="face_acquired_poor_gaze" msgid="4427153558773628020">"請以更直視的角度看著裝置。"</string> - <string name="face_acquired_not_detected" msgid="1057966913397548150">"看不到您的臉。將手機保持與視線同高。"</string> + <string name="face_acquired_not_detected" msgid="1057966913397548150">"看不到面孔,請將手機放在視線水平。"</string> <string name="face_acquired_too_much_motion" msgid="8199691445085189528">"裝置不夠穩定。請拿穩手機。"</string> <string name="face_acquired_recalibrate" msgid="8724013080976469746">"請重新註冊臉孔。"</string> <string name="face_acquired_too_different" msgid="2520389515612972889">"無法辨識面孔,請再試一次。"</string> <string name="face_acquired_too_similar" msgid="8882920552674125694">"請稍微變更頭部的位置"</string> <string name="face_acquired_pan_too_extreme" msgid="5417928604710621088">"盡可能直視手機"</string> - <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"盡可能直視手機"</string> + <string name="face_acquired_tilt_too_extreme" msgid="5715715666540716620">"請正面望向手機"</string> <string name="face_acquired_roll_too_extreme" msgid="8261939882838881194">"盡可能直視手機"</string> <string name="face_acquired_obscured" msgid="4917643294953326639">"移除遮住您臉孔的任何東西。"</string> <string name="face_acquired_sensor_dirty" msgid="8968391891086721678">"請清理螢幕頂部,包括黑色列"</string> - <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"您必須展示整個面孔。"</string> + <string name="face_acquired_dark_glasses_detected" msgid="7263638432128692048">"必須展示整個面孔"</string> <string name="face_acquired_mouth_covering_detected" msgid="615991670821926847">"您必須展示整個面孔。"</string> <string name="face_acquired_recalibrate_alt" msgid="5702674220280332115">"無法建立面部模型,請再試一次。"</string> <string name="face_acquired_dark_glasses_detected_alt" msgid="4052123776406041972">"偵測到深色眼鏡。您必須展示整個面孔。"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"地區偏好設定"</string> <string name="search_language_hint" msgid="7004225294308793583">"輸入語言名稱"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"建議"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"建議的語言"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"建議地區"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"所有語言"</string> <string name="region_picker_section_all" msgid="756441309928774155">"所有國家/地區"</string> <string name="locale_search_menu" msgid="6258090710176422934">"搜尋"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"瞭解詳情"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"加強版通知在 Android 12 取代了 Android 自動調整通知。此功能會顯示建議的操作和回覆,更可為您整理通知。\n\n加強版通知功能可存取您的通知內容 (包括聯絡人姓名和訊息等個人資料),亦可以關閉或回應通知,例如接聽來電和控制「請勿騷擾」功能。"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"「日常安排模式」資料通知"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"電量可能會在日常充電前耗盡"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"「省電模式」已啟用,以便延長電池壽命"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"已開啟「省電模式」"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"減少用電可延長電池壽命"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"省電模式"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"已關閉省電模式"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"手機電量充足。各項功能已不再受限。"</string> diff --git a/core/res/res/values-zh-rTW/strings.xml b/core/res/res/values-zh-rTW/strings.xml index cdca5e5e9b45..aaa05f0091d1 100644 --- a/core/res/res/values-zh-rTW/strings.xml +++ b/core/res/res/values-zh-rTW/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"KB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<未命名>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(沒有電話號碼)"</string> @@ -636,7 +631,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"請洽詢維修供應商。"</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"無法建立臉部模型,請再試一次。"</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"亮度過高,請嘗試使用較柔和的照明方式。"</string> - <string name="face_acquired_too_dark" msgid="7919016380747701228">"請試著提高亮度"</string> + <string name="face_acquired_too_dark" msgid="7919016380747701228">"請採用更明亮的光源"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"請將手機拿遠一點"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"請將手機拿近一點"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"請將手機舉高一點"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"地區偏好設定"</string> <string name="search_language_hint" msgid="7004225294308793583">"請輸入語言名稱"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"建議語言"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"建議語言"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"建議地區"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"所有語言"</string> <string name="region_picker_section_all" msgid="756441309928774155">"所有地區"</string> <string name="locale_search_menu" msgid="6258090710176422934">"搜尋"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"瞭解詳情"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"在 Android 12 中,加強型通知功能已取代 Android 自動調整通知。這項功能可以顯示建議的操作和回覆內容,也可以幫你整理通知訊息。\n\n加強型通知功能可存取通知內容,包括聯絡人名稱和訊息內文等個人資訊。此外,這項功能還能關閉或回覆通知,例如接聽來電及控管「零打擾」功能。"</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"日常安排模式資訊通知"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"電池電力可能會在你平常的充電時間前耗盡"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"已啟用省電模式以延長電池續航力"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"已開啟省電模式"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"降低電池用量,以便延長電池續航力"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"省電模式"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"省電模式已關閉"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"手機電力充足,各項功能不再受到限制。"</string> diff --git a/core/res/res/values-zu/strings.xml b/core/res/res/values-zu/strings.xml index 7c930cc7410f..20b8b58e95b6 100644 --- a/core/res/res/values-zu/strings.xml +++ b/core/res/res/values-zu/strings.xml @@ -21,11 +21,6 @@ <resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="byteShort" msgid="202579285008794431">"B"</string> - <string name="kilobyteShort" msgid="2214285521564195803">"kB"</string> - <string name="megabyteShort" msgid="6649361267635823443">"MB"</string> - <string name="gigabyteShort" msgid="7515809460261287991">"GB"</string> - <string name="terabyteShort" msgid="1822367128583886496">"TB"</string> - <string name="petabyteShort" msgid="5651571254228534832">"PB"</string> <string name="fileSizeSuffix" msgid="4233671691980131257">"<xliff:g id="NUMBER">%1$s</xliff:g> <xliff:g id="UNIT">%2$s</xliff:g>"</string> <string name="untitled" msgid="3381766946944136678">"<Akunasihloko>"</string> <string name="emptyPhoneNumber" msgid="5812172618020360048">"(Ayikho inombolo yefoni)"</string> @@ -636,7 +631,7 @@ <string name="fingerprint_recalibrate_notification_content" msgid="8519935717822194943">"Vakashela umhlinzeki wokulungisa."</string> <string name="face_acquired_insufficient" msgid="6889245852748492218">"Ayikwazi ukusungula imodeli yobuso bakho. Zama futhi."</string> <string name="face_acquired_too_bright" msgid="8070756048978079164">"Kukhanya kakhulu. Zama ukukhanya okuthambile."</string> - <string name="face_acquired_too_dark" msgid="7919016380747701228">"Zama ukukhanyisa okukhanyayo"</string> + <string name="face_acquired_too_dark" msgid="7919016380747701228">"Zama ukukhanyisa okukhudlwana"</string> <string name="face_acquired_too_close" msgid="4453646176196302462">"Yisa ifoni kude"</string> <string name="face_acquired_too_far" msgid="2922278214231064859">"Sondeza ifoni eduze"</string> <string name="face_acquired_too_high" msgid="8278815780046368576">"Yisa ifoni phezulu"</string> @@ -1924,6 +1919,8 @@ <string name="country_selection_title" msgid="5221495687299014379">"Okuncamelayo kwesifunda"</string> <string name="search_language_hint" msgid="7004225294308793583">"Thayipha igama lolimi"</string> <string name="language_picker_section_suggested" msgid="6556199184638990447">"Okuphakanyisiwe"</string> + <string name="language_picker_section_suggested_bilingual" msgid="5932198319583556613">"Izilimi eziphakanyisiwe"</string> + <string name="region_picker_section_suggested_bilingual" msgid="704607569328224133">"Izifunda eziphakanyisiwe"</string> <string name="language_picker_section_all" msgid="1985809075777564284">"Zonke izilimi"</string> <string name="region_picker_section_all" msgid="756441309928774155">"Zonke izifunda"</string> <string name="locale_search_menu" msgid="6258090710176422934">"Sesha"</string> @@ -2078,8 +2075,8 @@ <string name="nas_upgrade_notification_learn_more_action" msgid="7011130656195423947">"Funda kabanzi"</string> <string name="nas_upgrade_notification_learn_more_content" msgid="3735480566983530650">"Izaziso ezithuthukisiwe zithathe isikhundla sezaziso eziguqukayo ze-Android ku-Android 12. Lesi sakhi sikhombisa izenzo eziphakanyisiwe nezimpendulo, futhi sihlela izaziso zakho.\n\nIzaziso ezithuthukisiwe zingafinyelela kokuqukethwe kwesaziso, kuhlanganise nemininingwane yomuntu efana namagama woxhumana nabo nemilayezo. Lesi sakhi singacashisa noma siphendule izaziso, njengokuphendula amakholi wefoni, nokulawula okuthi Ungaphazamisi."</string> <string name="dynamic_mode_notification_channel_name" msgid="2986926422100223328">"Isaziso solwazi lwe-Routine Mode"</string> - <string name="dynamic_mode_notification_title" msgid="9205715501274608016">"Ibhethri lingaphela ngaphambi kokushaja okuvamile"</string> - <string name="dynamic_mode_notification_summary" msgid="4141614604437372157">"Isilondolozi sebhethri siyasebenza ngaphandle kwempilo yebhethri"</string> + <string name="dynamic_mode_notification_title" msgid="1388718452788985481">"Isilondolozi Sebhethri sivuliwe"</string> + <string name="dynamic_mode_notification_summary" msgid="1639031262484979689">"Ukwehlisa ukusetshenziswa kwebhethri ukuze kunwetshiswe impilo yebhethri"</string> <string name="battery_saver_notification_channel_name" msgid="3918243458067916913">"Isilondolozi sebhethri"</string> <string name="battery_saver_off_notification_title" msgid="7637255960468032515">"Isilondolozi sebhethri sivaliwe"</string> <string name="battery_saver_charged_notification_summary" product="default" msgid="5544457317418624367">"Ifoni inokushajwa okwanele. Izici azisakhawulelwe."</string> diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index dac13ff62e3b..81310ca265cc 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -5144,11 +5144,11 @@ <!-- Whether displaying letterbox education is enabled for letterboxed fullscreen apps. --> <bool name="config_letterboxIsEducationEnabled">false</bool> - <!-- Default min aspect ratio for unresizable apps which is used when an app doesn't specify - android:minAspectRatio in accordance with CDD 7.1.1.2 requirement: - https://source.android.com/compatibility/12/android-12-cdd#7112_screen_aspect_ratio. - An exception will be thrown if the given aspect ratio < 4:3. --> - <item name="config_letterboxDefaultMinAspectRatioForUnresizableApps" format="float" type="dimen">1.5</item> + <!-- Default min aspect ratio for unresizable apps which are eligible for size compat mode. + Values <= 1.0 will be ignored. Activity min/max aspect ratio restrictions will still be + espected so this override can control the maximum screen area that can be occupied by + the app in the letterbox mode. --> + <item name="config_letterboxDefaultMinAspectRatioForUnresizableApps" format="float" type="dimen">0.0</item> <!-- Whether using split screen aspect ratio as a default aspect ratio for unresizable apps. --> <bool name="config_letterboxIsSplitScreenAspectRatioForUnresizableAppsEnabled">false</bool> diff --git a/core/tests/coretests/AndroidManifest.xml b/core/tests/coretests/AndroidManifest.xml index 3e4b1cc87ef8..e15458680e66 100644 --- a/core/tests/coretests/AndroidManifest.xml +++ b/core/tests/coretests/AndroidManifest.xml @@ -161,6 +161,9 @@ <!-- ChooserActivityTest permissions--> <uses-permission android:name="android.permission.SET_CLIP_SOURCE" /> + <!-- AccessibilityShortcutChooserActivityTest permissions --> + <uses-permission android:name="android.permission.MANAGE_ACCESSIBILITY" /> + <application android:theme="@style/Theme" android:supportsRtl="true" @@ -1414,6 +1417,7 @@ <activity android:name="com.android.internal.app.ChooserWrapperActivity"/> <activity android:name="com.android.internal.app.ResolverWrapperActivity"/> <activity android:name="com.android.internal.app.IntentForwarderActivityTest$IntentForwarderWrapperActivity"/> + <activity android:name="com.android.internal.accessibility.AccessibilityShortcutChooserActivityTest$TestAccessibilityShortcutChooserActivity"/> <receiver android:name="android.app.activity.AbortReceiver" android:exported="true"> @@ -1680,6 +1684,17 @@ android:resizeableActivity="true" android:exported="true"> </activity> + + <service android:name="android.view.stylus.HandwritingImeService" + android:label="Handwriting IME" + android:permission="android.permission.BIND_INPUT_METHOD" + android:exported="true"> + <intent-filter> + <action android:name="android.view.InputMethod"/> + </intent-filter> + <meta-data android:name="android.view.im" + android:resource="@xml/ime_meta_handwriting"/> + </service> </application> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" diff --git a/core/tests/coretests/res/xml/ime_meta_handwriting.xml b/core/tests/coretests/res/xml/ime_meta_handwriting.xml new file mode 100644 index 000000000000..24c0c255c2f3 --- /dev/null +++ b/core/tests/coretests/res/xml/ime_meta_handwriting.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + ~ Copyright (C) 2022 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. + --> + +<input-method + xmlns:android="http://schemas.android.com/apk/res/android" + android:settingsActivity="com.android.inputmethod.latin.settings.SettingsActivity" + android:supportsStylusHandwriting="true"/> diff --git a/core/tests/coretests/src/android/view/stylus/HandwritingImeService.java b/core/tests/coretests/src/android/view/stylus/HandwritingImeService.java new file mode 100644 index 000000000000..98cf6b25152d --- /dev/null +++ b/core/tests/coretests/src/android/view/stylus/HandwritingImeService.java @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package android.view.stylus; + +import android.content.ComponentName; +import android.inputmethodservice.InputMethodService; + +public class HandwritingImeService extends InputMethodService { + private static final String PACKAGE_NAME = "com.android.frameworks.coretests"; + + private static ComponentName getComponentName() { + return new ComponentName(PACKAGE_NAME, HandwritingImeService.class.getName()); + } + + static String getImeId() { + return getComponentName().flattenToShortString(); + } +} diff --git a/core/tests/coretests/src/android/view/stylus/HandwritingInitiatorTest.java b/core/tests/coretests/src/android/view/stylus/HandwritingInitiatorTest.java index 647e410d8c28..8d3ee2a15dce 100644 --- a/core/tests/coretests/src/android/view/stylus/HandwritingInitiatorTest.java +++ b/core/tests/coretests/src/android/view/stylus/HandwritingInitiatorTest.java @@ -43,10 +43,15 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.SmallTest; import androidx.test.platform.app.InstrumentationRegistry; +import com.android.compatibility.common.util.PollingCheck; + +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; +import java.util.concurrent.TimeUnit; + /** * Tests for {@link HandwritingInitiator} * @@ -60,7 +65,7 @@ public class HandwritingInitiatorTest { private static final long TIMEOUT = ViewConfiguration.getLongPressTimeout(); private static final int HW_BOUNDS_OFFSETS_LEFT_PX = 10; private static final int HW_BOUNDS_OFFSETS_TOP_PX = 20; - private static final int HW_BOUNDS_OFFSETS_RIGHT_PX = 30; + private static final int HW_BOUNDS_OFFSETS_RIGHT_PX = 30; private static final int HW_BOUNDS_OFFSETS_BOTTOM_PX = 40; private int mHandwritingSlop = 4; @@ -71,9 +76,17 @@ public class HandwritingInitiatorTest { private Context mContext; @Before - public void setup() { - final Instrumentation mInstrumentation = InstrumentationRegistry.getInstrumentation(); - mContext = mInstrumentation.getTargetContext(); + public void setup() throws Exception { + final Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation(); + mContext = instrumentation.getTargetContext(); + + String imeId = HandwritingImeService.getImeId(); + instrumentation.getUiAutomation().executeShellCommand("ime enable " + imeId); + instrumentation.getUiAutomation().executeShellCommand("ime set " + imeId); + PollingCheck.check("Check that stylus handwriting is available", + TimeUnit.SECONDS.toMillis(10), + () -> mContext.getSystemService(InputMethodManager.class) + .isStylusHandwritingAvailable()); final ViewConfiguration viewConfiguration = ViewConfiguration.get(mContext); mHandwritingSlop = viewConfiguration.getScaledHandwritingSlop(); @@ -90,22 +103,32 @@ public class HandwritingInitiatorTest { mHandwritingInitiator.updateHandwritingAreasForView(mTestView); } + @After + public void tearDown() throws Exception { + InstrumentationRegistry.getInstrumentation().getUiAutomation() + .executeShellCommand("ime reset"); + } + @Test public void onTouchEvent_startHandwriting_when_stylusMoveOnce_withinHWArea() { mHandwritingInitiator.onInputConnectionCreated(mTestView); final int x1 = (sHwArea.left + sHwArea.right) / 2; final int y1 = (sHwArea.top + sHwArea.bottom) / 2; MotionEvent stylusEvent1 = createStylusEvent(ACTION_DOWN, x1, y1, 0); - mHandwritingInitiator.onTouchEvent(stylusEvent1); + boolean onTouchEventResult1 = mHandwritingInitiator.onTouchEvent(stylusEvent1); final int x2 = x1 + mHandwritingSlop * 2; final int y2 = y1; MotionEvent stylusEvent2 = createStylusEvent(ACTION_MOVE, x2, y2, 0); - mHandwritingInitiator.onTouchEvent(stylusEvent2); + boolean onTouchEventResult2 = mHandwritingInitiator.onTouchEvent(stylusEvent2); // Stylus movement within HandwritingArea should trigger IMM.startHandwriting once. verify(mHandwritingInitiator, times(1)).startHandwriting(mTestView); + assertThat(onTouchEventResult1).isFalse(); + // After IMM.startHandwriting is triggered, onTouchEvent should return true for ACTION_MOVE + // events so that the events are not dispatched to the view tree. + assertThat(onTouchEventResult2).isTrue(); } @Test @@ -114,24 +137,38 @@ public class HandwritingInitiatorTest { final int x1 = (sHwArea.left + sHwArea.right) / 2; final int y1 = (sHwArea.top + sHwArea.bottom) / 2; MotionEvent stylusEvent1 = createStylusEvent(ACTION_DOWN, x1, y1, 0); - mHandwritingInitiator.onTouchEvent(stylusEvent1); + boolean onTouchEventResult1 = mHandwritingInitiator.onTouchEvent(stylusEvent1); - final int x2 = x1 + mHandwritingSlop * 2; + final int x2 = x1 + mHandwritingSlop / 2; final int y2 = y1; MotionEvent stylusEvent2 = createStylusEvent(ACTION_MOVE, x2, y2, 0); - mHandwritingInitiator.onTouchEvent(stylusEvent2); - + boolean onTouchEventResult2 = mHandwritingInitiator.onTouchEvent(stylusEvent2); final int x3 = x2 + mHandwritingSlop * 2; - final int y3 = y2; + final int y3 = y1; MotionEvent stylusEvent3 = createStylusEvent(ACTION_MOVE, x3, y3, 0); - mHandwritingInitiator.onTouchEvent(stylusEvent3); + boolean onTouchEventResult3 = mHandwritingInitiator.onTouchEvent(stylusEvent3); + + final int x4 = x3 + mHandwritingSlop * 2; + final int y4 = y1; + MotionEvent stylusEvent4 = createStylusEvent(ACTION_MOVE, x4, y4, 0); + boolean onTouchEventResult4 = mHandwritingInitiator.onTouchEvent(stylusEvent4); - MotionEvent stylusEvent4 = createStylusEvent(ACTION_UP, x2, y2, 0); - mHandwritingInitiator.onTouchEvent(stylusEvent4); + MotionEvent stylusEvent5 = createStylusEvent(ACTION_UP, x4, y4, 0); + boolean onTouchEventResult5 = mHandwritingInitiator.onTouchEvent(stylusEvent5); // It only calls startHandwriting once for each ACTION_DOWN. verify(mHandwritingInitiator, times(1)).startHandwriting(mTestView); + assertThat(onTouchEventResult1).isFalse(); + // stylusEvent2 does not trigger IMM.startHandwriting since the touch slop distance has not + // been exceeded. onTouchEvent should return false so that the event is dispatched to the + // view tree. + assertThat(onTouchEventResult2).isFalse(); + // After IMM.startHandwriting is triggered by stylusEvent3, onTouchEvent should return true + // for ACTION_MOVE events so that the events are not dispatched to the view tree. + assertThat(onTouchEventResult3).isTrue(); + assertThat(onTouchEventResult4).isTrue(); + assertThat(onTouchEventResult5).isFalse(); } @Test @@ -189,6 +226,32 @@ public class HandwritingInitiatorTest { } @Test + public void onTouchEvent_notStartHandwriting_whenHandwritingNotAvailable() throws Exception { + InstrumentationRegistry.getInstrumentation().getUiAutomation() + .executeShellCommand("ime reset"); + PollingCheck.check("Check that stylus handwriting is unavailable", + TimeUnit.SECONDS.toMillis(10), + () -> !mContext.getSystemService(InputMethodManager.class) + .isStylusHandwritingAvailable()); + + mHandwritingInitiator.onInputConnectionCreated(mTestView); + final int x1 = (sHwArea.left + sHwArea.right) / 2; + final int y1 = (sHwArea.top + sHwArea.bottom) / 2; + MotionEvent stylusEvent1 = createStylusEvent(ACTION_DOWN, x1, y1, 0); + mHandwritingInitiator.onTouchEvent(stylusEvent1); + + final int x2 = x1 + mHandwritingSlop * 2; + final int y2 = y1; + + MotionEvent stylusEvent2 = createStylusEvent(ACTION_MOVE, x2, y2, 0); + mHandwritingInitiator.onTouchEvent(stylusEvent2); + + // Stylus movement within HandwritingArea should not trigger IMM.startHandwriting since + // the current IME doesn't support handwriting. + verify(mHandwritingInitiator, never()).startHandwriting(mTestView); + } + + @Test public void onTouchEvent_notStartHandwriting_when_stylusTap_withinHWArea() { mHandwritingInitiator.onInputConnectionCreated(mTestView); final int x1 = 200; diff --git a/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java new file mode 100644 index 000000000000..728757929cfd --- /dev/null +++ b/core/tests/coretests/src/com/android/internal/accessibility/AccessibilityShortcutChooserActivityTest.java @@ -0,0 +1,144 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.internal.accessibility; + +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.action.ViewActions.doubleClick; +import static androidx.test.espresso.action.ViewActions.scrollTo; +import static androidx.test.espresso.assertion.ViewAssertions.doesNotExist; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.RootMatchers.isDialog; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import android.accessibilityservice.AccessibilityServiceInfo; +import android.content.ComponentName; +import android.content.Context; +import android.content.pm.ApplicationInfo; +import android.content.pm.PackageManager; +import android.content.pm.ResolveInfo; +import android.content.pm.ServiceInfo; +import android.os.Bundle; +import android.os.Handler; +import android.view.accessibility.AccessibilityManager; +import android.view.accessibility.IAccessibilityManager; + +import androidx.lifecycle.Lifecycle; +import androidx.test.core.app.ActivityScenario; +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.runner.AndroidJUnit4; + +import com.android.internal.R; +import com.android.internal.accessibility.dialog.AccessibilityShortcutChooserActivity; + +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.Collections; + +/** + * Tests for {@link AccessibilityShortcutChooserActivity}. + */ +@RunWith(AndroidJUnit4.class) +public class AccessibilityShortcutChooserActivityTest { + private static final String TEST_LABEL = "TEST_LABEL"; + private static final Context sContext = + InstrumentationRegistry.getInstrumentation().getContext(); + private ActivityScenario<TestAccessibilityShortcutChooserActivity> mScenario; + private static IAccessibilityManager sAccessibilityManagerService; + + @Mock + private AccessibilityServiceInfo mAccessibilityServiceInfo; + + @Mock + private ResolveInfo mResolveInfo; + + @Mock + private ServiceInfo mServiceInfo; + + @Mock + private ApplicationInfo mApplicationInfo; + + @Before + public void setUp() throws Exception { + MockitoAnnotations.initMocks(this); + sAccessibilityManagerService = mock(IAccessibilityManager.class); + + when(mAccessibilityServiceInfo.getResolveInfo()).thenReturn(mResolveInfo); + mResolveInfo.serviceInfo = mServiceInfo; + mServiceInfo.applicationInfo = mApplicationInfo; + when(mResolveInfo.loadLabel(any(PackageManager.class))).thenReturn(TEST_LABEL); + when(mAccessibilityServiceInfo.getComponentName()).thenReturn( + new ComponentName("package", "class")); + when(sAccessibilityManagerService.getInstalledAccessibilityServiceList( + anyInt())).thenReturn(Collections.singletonList(mAccessibilityServiceInfo)); + + mScenario = ActivityScenario.launch(TestAccessibilityShortcutChooserActivity.class); + } + + @Test + public void doubleClickServiceTargetAndClickDenyButton_permissionDialogDoesNotExist() { + mScenario.moveToState(Lifecycle.State.CREATED); + mScenario.moveToState(Lifecycle.State.STARTED); + mScenario.moveToState(Lifecycle.State.RESUMED); + onView(withText(R.string.accessibility_select_shortcut_menu_title)).inRoot( + isDialog()).check(matches(isDisplayed())); + onView(withText(R.string.edit_accessibility_shortcut_menu_button)).perform(click()); + + onView(withText(TEST_LABEL)).perform(scrollTo(), doubleClick()); + onView(withId(R.id.accessibility_permission_enable_deny_button)).perform(scrollTo(), + click()); + + onView(withId(R.id.accessibility_permissionDialog_title)).inRoot(isDialog()).check( + doesNotExist()); + mScenario.moveToState(Lifecycle.State.DESTROYED); + } + + /** + * Used for testing. + */ + public static class TestAccessibilityShortcutChooserActivity extends + AccessibilityShortcutChooserActivity { + private AccessibilityManager mAccessibilityManager; + + @Override + protected void onCreate(Bundle savedInstanceState) { + mAccessibilityManager = new AccessibilityManager(sContext, new Handler(getMainLooper()), + sAccessibilityManagerService, /* userId= */ 0, /* serviceConnect= */ true); + super.onCreate(savedInstanceState); + } + + @Override + public Object getSystemService(String name) { + if (Context.ACCESSIBILITY_SERVICE.equals(name)) { + return mAccessibilityManager; + } + + return super.getSystemService(name); + } + } +} diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java index cfb32050e32f..18086f552ea3 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/layout/WindowLayoutComponentImpl.java @@ -25,7 +25,10 @@ import static androidx.window.util.ExtensionHelper.transformToWindowSpaceRect; import android.annotation.Nullable; import android.app.Activity; +import android.app.ActivityManager; +import android.app.ActivityManager.AppTask; import android.app.Application; +import android.app.WindowConfiguration; import android.content.Context; import android.graphics.Rect; import android.os.Bundle; @@ -180,7 +183,7 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent { if (displayId != DEFAULT_DISPLAY) { Log.w(TAG, "This sample doesn't support display features on secondary displays"); return features; - } else if (activity.isInMultiWindowMode()) { + } else if (isTaskInMultiWindowMode(activity)) { // It is recommended not to report any display features in multi-window mode, since it // won't be possible to synchronize the display feature positions with window movement. return features; @@ -204,6 +207,32 @@ public class WindowLayoutComponentImpl implements WindowLayoutComponent { } /** + * Checks whether the task associated with the activity is in multi-window. If task info is not + * available it defaults to {@code true}. + */ + private boolean isTaskInMultiWindowMode(@NonNull Activity activity) { + final ActivityManager am = activity.getSystemService(ActivityManager.class); + if (am == null) { + return true; + } + + final List<AppTask> appTasks = am.getAppTasks(); + final int taskId = activity.getTaskId(); + AppTask task = null; + for (AppTask t : appTasks) { + if (t.getTaskInfo().taskId == taskId) { + task = t; + break; + } + } + if (task == null) { + // The task might be removed on the server already. + return true; + } + return WindowConfiguration.inMultiWindowMode(task.getTaskInfo().getWindowingMode()); + } + + /** * Returns {@link true} if a {@link Rect} has zero width and zero height, * {@code false} otherwise. */ diff --git a/libs/WindowManager/Shell/res/values-ar/strings.xml b/libs/WindowManager/Shell/res/values-ar/strings.xml index 98b25c8ab087..2afce7fa3c43 100644 --- a/libs/WindowManager/Shell/res/values-ar/strings.xml +++ b/libs/WindowManager/Shell/res/values-ar/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"انقر مرتين بجانب التطبيق لتغيير موضعه."</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"حسنًا"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"التوسيع للحصول على مزيد من المعلومات"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"تكبير"</string> + <string name="close_button_text" msgid="2913281996024033299">"إغلاق"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-as/strings.xml b/libs/WindowManager/Shell/res/values-as/strings.xml index 2520267f46d2..df975751ee31 100644 --- a/libs/WindowManager/Shell/res/values-as/strings.xml +++ b/libs/WindowManager/Shell/res/values-as/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"এপ্টোৰ স্থান সলনি কৰিবলৈ ইয়াৰ কাষত দুবাৰ টিপক"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"বুজি পালোঁ"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"অধিক তথ্যৰ বাবে বিস্তাৰ কৰক।"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"সৰ্বাধিক মাত্ৰালৈ বঢ়াওক"</string> + <string name="close_button_text" msgid="2913281996024033299">"বন্ধ কৰক"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-az/strings.xml b/libs/WindowManager/Shell/res/values-az/strings.xml index 51b60774b2fd..892be9345e3a 100644 --- a/libs/WindowManager/Shell/res/values-az/strings.xml +++ b/libs/WindowManager/Shell/res/values-az/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Tətbiqin yerini dəyişmək üçün yanına iki dəfə toxunun"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Anladım"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Ətraflı məlumat üçün genişləndirin."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Böyüdün"</string> + <string name="close_button_text" msgid="2913281996024033299">"Bağlayın"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-bg/strings.xml b/libs/WindowManager/Shell/res/values-bg/strings.xml index c44afcd74c01..e27ec8ee11bb 100644 --- a/libs/WindowManager/Shell/res/values-bg/strings.xml +++ b/libs/WindowManager/Shell/res/values-bg/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Докоснете два пъти дадено приложение, за да промените позицията му"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Разбрах"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Разгъване за още информация."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Увеличаване"</string> + <string name="close_button_text" msgid="2913281996024033299">"Затваряне"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-bs/strings.xml b/libs/WindowManager/Shell/res/values-bs/strings.xml index fbf39255be08..aadbfa434cf4 100644 --- a/libs/WindowManager/Shell/res/values-bs/strings.xml +++ b/libs/WindowManager/Shell/res/values-bs/strings.xml @@ -82,6 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Dvaput dodirnite pored aplikacije da promijenite njen položaj"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Razumijem"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Proširite za više informacija."</string> - <string name="maximize_button_text" msgid="1650859196290301963">"Maksimiziraj"</string> - <string name="close_button_text" msgid="2913281996024033299">"Zatvori"</string> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksimiziranje"</string> + <string name="close_button_text" msgid="2913281996024033299">"Zatvaranje"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-ca/strings.xml b/libs/WindowManager/Shell/res/values-ca/strings.xml index 3ea31cebe5ab..ab672460ce1d 100644 --- a/libs/WindowManager/Shell/res/values-ca/strings.xml +++ b/libs/WindowManager/Shell/res/values-ca/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Fes doble toc al costat d\'una aplicació per canviar-ne la posició"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Entesos"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Desplega per obtenir més informació."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maximitza"</string> + <string name="close_button_text" msgid="2913281996024033299">"Tanca"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-cs/strings.xml b/libs/WindowManager/Shell/res/values-cs/strings.xml index 574ed2616490..d7b1a3889806 100644 --- a/libs/WindowManager/Shell/res/values-cs/strings.xml +++ b/libs/WindowManager/Shell/res/values-cs/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Dvojitým klepnutím vedle aplikace změňte její umístění"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Rozbalením zobrazíte další informace."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maximalizovat"</string> + <string name="close_button_text" msgid="2913281996024033299">"Zavřít"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-da/strings.xml b/libs/WindowManager/Shell/res/values-da/strings.xml index 2fcd37a54bc6..c0acc08cde19 100644 --- a/libs/WindowManager/Shell/res/values-da/strings.xml +++ b/libs/WindowManager/Shell/res/values-da/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Tryk to gange ud for en app for at ændre dens placering"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Udvid for at få flere oplysninger."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksimér"</string> + <string name="close_button_text" msgid="2913281996024033299">"Luk"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-de/strings.xml b/libs/WindowManager/Shell/res/values-de/strings.xml index 07075b591f73..e06bebda8bdf 100644 --- a/libs/WindowManager/Shell/res/values-de/strings.xml +++ b/libs/WindowManager/Shell/res/values-de/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Neben einer App doppeltippen, um die Position zu ändern"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Ok"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Für weitere Informationen maximieren."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maximieren"</string> + <string name="close_button_text" msgid="2913281996024033299">"Schließen"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-es/strings.xml b/libs/WindowManager/Shell/res/values-es/strings.xml index 8f7c741b45e2..c2493287bcb8 100644 --- a/libs/WindowManager/Shell/res/values-es/strings.xml +++ b/libs/WindowManager/Shell/res/values-es/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Toca dos veces junto a una aplicación para cambiar su posición"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Entendido"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Mostrar más información"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maximizar"</string> + <string name="close_button_text" msgid="2913281996024033299">"Cerrar"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-et/strings.xml b/libs/WindowManager/Shell/res/values-et/strings.xml index 0d75a5552fe4..0133336e58b8 100644 --- a/libs/WindowManager/Shell/res/values-et/strings.xml +++ b/libs/WindowManager/Shell/res/values-et/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Topeltpuudutage rakenduse kõrval, et selle asendit muuta"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Selge"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Laiendage lisateabe saamiseks."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksimeeri"</string> + <string name="close_button_text" msgid="2913281996024033299">"Sule"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-fa/strings.xml b/libs/WindowManager/Shell/res/values-fa/strings.xml index 3e95b484d567..20045eff330c 100644 --- a/libs/WindowManager/Shell/res/values-fa/strings.xml +++ b/libs/WindowManager/Shell/res/values-fa/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"در کنار برنامه دوضربه بزنید تا جابهجا شود"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"متوجهام"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"برای اطلاعات بیشتر، گسترده کنید."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"بزرگ کردن"</string> + <string name="close_button_text" msgid="2913281996024033299">"بستن"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-fi/strings.xml b/libs/WindowManager/Shell/res/values-fi/strings.xml index a1e5efbad7b6..2cd265ea82f0 100644 --- a/libs/WindowManager/Shell/res/values-fi/strings.xml +++ b/libs/WindowManager/Shell/res/values-fi/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Kaksoisnapauta sovellusta, jos haluat siirtää sitä"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Katso lisätietoja laajentamalla."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Suurenna"</string> + <string name="close_button_text" msgid="2913281996024033299">"Sulje"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml index c3f36e60bddc..eb25a8d16434 100644 --- a/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml +++ b/libs/WindowManager/Shell/res/values-fr-rCA/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Touchez deux fois à côté d\'une application pour la repositionner"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Développer pour en savoir plus."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Agrandir"</string> + <string name="close_button_text" msgid="2913281996024033299">"Fermer"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-fr/strings.xml b/libs/WindowManager/Shell/res/values-fr/strings.xml index 1365c22017cf..53358b7a23b7 100644 --- a/libs/WindowManager/Shell/res/values-fr/strings.xml +++ b/libs/WindowManager/Shell/res/values-fr/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Appuyez deux fois à côté d\'une appli pour la repositionner"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Développez pour obtenir plus d\'informations"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Agrandir"</string> + <string name="close_button_text" msgid="2913281996024033299">"Fermer"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-gl/strings.xml b/libs/WindowManager/Shell/res/values-gl/strings.xml index 19430577f181..09977a194fea 100644 --- a/libs/WindowManager/Shell/res/values-gl/strings.xml +++ b/libs/WindowManager/Shell/res/values-gl/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Toca dúas veces a carón dunha aplicación para cambiala de posición"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Entendido"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Despregar para obter máis información."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maximizar"</string> + <string name="close_button_text" msgid="2913281996024033299">"Pechar"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-hi/strings.xml b/libs/WindowManager/Shell/res/values-hi/strings.xml index 478bfbaed62e..3d83005ba30b 100644 --- a/libs/WindowManager/Shell/res/values-hi/strings.xml +++ b/libs/WindowManager/Shell/res/values-hi/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"किसी ऐप्लिकेशन की जगह बदलने के लिए, उसके बगल में दो बार टैप करें"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"ठीक है"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"ज़्यादा जानकारी के लिए बड़ा करें."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"बड़ा करें"</string> + <string name="close_button_text" msgid="2913281996024033299">"बंद करें"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-hy/strings.xml b/libs/WindowManager/Shell/res/values-hy/strings.xml index 4cc183de140a..160651ca67ad 100644 --- a/libs/WindowManager/Shell/res/values-hy/strings.xml +++ b/libs/WindowManager/Shell/res/values-hy/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Կրկնակի հպեք հավելվածի կողքին՝ այն տեղափոխելու համար"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Եղավ"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Ծավալեք՝ ավելին իմանալու համար։"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Ծավալել"</string> + <string name="close_button_text" msgid="2913281996024033299">"Փակել"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-in/strings.xml b/libs/WindowManager/Shell/res/values-in/strings.xml index af8a8ece437d..fab34868009e 100644 --- a/libs/WindowManager/Shell/res/values-in/strings.xml +++ b/libs/WindowManager/Shell/res/values-in/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Ketuk dua kali di samping aplikasi untuk mengubah posisinya"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Oke"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Luaskan untuk melihat informasi selengkapnya."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksimalkan"</string> + <string name="close_button_text" msgid="2913281996024033299">"Tutup"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-it/strings.xml b/libs/WindowManager/Shell/res/values-it/strings.xml index 40a0e176ca29..7ec13c4248e0 100644 --- a/libs/WindowManager/Shell/res/values-it/strings.xml +++ b/libs/WindowManager/Shell/res/values-it/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Tocca due volte accanto a un\'app per riposizionarla"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Espandi per avere ulteriori informazioni."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Ingrandisci"</string> + <string name="close_button_text" msgid="2913281996024033299">"Chiudi"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-iw/strings.xml b/libs/WindowManager/Shell/res/values-iw/strings.xml index 3a7381164e08..8625a2a079da 100644 --- a/libs/WindowManager/Shell/res/values-iw/strings.xml +++ b/libs/WindowManager/Shell/res/values-iw/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"מקישים הקשה כפולה ליד אפליקציה כדי למקם אותה מחדש"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"הבנתי"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"מרחיבים כדי לקבל מידע נוסף."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"הגדלה"</string> + <string name="close_button_text" msgid="2913281996024033299">"סגירה"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-kk/strings.xml b/libs/WindowManager/Shell/res/values-kk/strings.xml index a1585a454322..22cf08b92082 100644 --- a/libs/WindowManager/Shell/res/values-kk/strings.xml +++ b/libs/WindowManager/Shell/res/values-kk/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Қолданбаның орнын ауыстыру үшін жанынан екі рет түртіңіз."</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Түсінікті"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Толығырақ ақпарат алу үшін терезені жайыңыз."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Жаю"</string> + <string name="close_button_text" msgid="2913281996024033299">"Жабу"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-ko/strings.xml b/libs/WindowManager/Shell/res/values-ko/strings.xml index 6f516e64ca02..15e8a9041202 100644 --- a/libs/WindowManager/Shell/res/values-ko/strings.xml +++ b/libs/WindowManager/Shell/res/values-ko/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"앱 위치를 조정하려면 앱 옆을 두 번 탭하세요."</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"확인"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"추가 정보는 펼쳐서 확인하세요."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"최대화"</string> + <string name="close_button_text" msgid="2913281996024033299">"닫기"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-lo/strings.xml b/libs/WindowManager/Shell/res/values-lo/strings.xml index a7ad006b0347..be72d8e2a22f 100644 --- a/libs/WindowManager/Shell/res/values-lo/strings.xml +++ b/libs/WindowManager/Shell/res/values-lo/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"ແຕະສອງເທື່ອໃສ່ຖັດຈາກແອັບໃດໜຶ່ງເພື່ອຈັດຕຳແໜ່ງຂອງມັນຄືນໃໝ່"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"ເຂົ້າໃຈແລ້ວ"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"ຂະຫຍາຍເພື່ອເບິ່ງຂໍ້ມູນເພີ່ມເຕີມ."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"ຂະຫຍາຍໃຫຍ່ສຸດ"</string> + <string name="close_button_text" msgid="2913281996024033299">"ປິດ"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-lt/strings.xml b/libs/WindowManager/Shell/res/values-lt/strings.xml index 3002492989aa..3fa163bb35c2 100644 --- a/libs/WindowManager/Shell/res/values-lt/strings.xml +++ b/libs/WindowManager/Shell/res/values-lt/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Dukart palieskite šalia programos, kad pakeistumėte jos poziciją"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Supratau"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Išskleiskite, jei reikia daugiau informacijos."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Padidinti"</string> + <string name="close_button_text" msgid="2913281996024033299">"Uždaryti"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-lv/strings.xml b/libs/WindowManager/Shell/res/values-lv/strings.xml index cce1f5feafb7..90cd4bed63f8 100644 --- a/libs/WindowManager/Shell/res/values-lv/strings.xml +++ b/libs/WindowManager/Shell/res/values-lv/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Veiciet dubultskārienu blakus lietotnei, lai manītu tās pozīciju"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Labi"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Izvērsiet, lai iegūtu plašāku informāciju."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksimizēt"</string> + <string name="close_button_text" msgid="2913281996024033299">"Aizvērt"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-nb/strings.xml b/libs/WindowManager/Shell/res/values-nb/strings.xml index ff987ea2b7b7..8e87bc10c470 100644 --- a/libs/WindowManager/Shell/res/values-nb/strings.xml +++ b/libs/WindowManager/Shell/res/values-nb/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Dobbelttrykk ved siden av en app for å flytte den"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Greit"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Vis for å få mer informasjon."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksimer"</string> + <string name="close_button_text" msgid="2913281996024033299">"Lukk"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-pa/strings.xml b/libs/WindowManager/Shell/res/values-pa/strings.xml index af91b36364f5..62587e58edc9 100644 --- a/libs/WindowManager/Shell/res/values-pa/strings.xml +++ b/libs/WindowManager/Shell/res/values-pa/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"ਕਿਸੇ ਐਪ ਦੀ ਜਗ੍ਹਾ ਬਦਲਣ ਲਈ ਉਸ ਦੇ ਅੱਗੇ ਡਬਲ ਟੈਪ ਕਰੋ"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"ਸਮਝ ਲਿਆ"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"ਹੋਰ ਜਾਣਕਾਰੀ ਲਈ ਵਿਸਤਾਰ ਕਰੋ।"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"ਵੱਡਾ ਕਰੋ"</string> + <string name="close_button_text" msgid="2913281996024033299">"ਬੰਦ ਕਰੋ"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-pl/strings.xml b/libs/WindowManager/Shell/res/values-pl/strings.xml index 8c6a4d55d269..363c851ca4cd 100644 --- a/libs/WindowManager/Shell/res/values-pl/strings.xml +++ b/libs/WindowManager/Shell/res/values-pl/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Kliknij dwukrotnie obok aplikacji, aby ją przenieść"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Rozwiń, aby wyświetlić więcej informacji."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksymalizuj"</string> + <string name="close_button_text" msgid="2913281996024033299">"Zamknij"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml index 2fe448bcaf28..67369b8b0175 100644 --- a/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml +++ b/libs/WindowManager/Shell/res/values-pt-rPT/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Toque duas vezes junto a uma app para a reposicionar"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Expandir para obter mais informações"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maximizar"</string> + <string name="close_button_text" msgid="2913281996024033299">"Fechar"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-si/strings.xml b/libs/WindowManager/Shell/res/values-si/strings.xml index b8c9b54904a2..1f8cba85c9eb 100644 --- a/libs/WindowManager/Shell/res/values-si/strings.xml +++ b/libs/WindowManager/Shell/res/values-si/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"එය නැවත ස්ථානගත කිරීමට යෙදුමකට යාබදව දෙවරක් තට්ටු කරන්න"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"තේරුණා"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"වැඩිදුර තොරතුරු සඳහා දිග හරින්න"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"විහිදන්න"</string> + <string name="close_button_text" msgid="2913281996024033299">"වසන්න"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-sq/strings.xml b/libs/WindowManager/Shell/res/values-sq/strings.xml index a9b9a58fcae3..591f4b71b00c 100644 --- a/libs/WindowManager/Shell/res/values-sq/strings.xml +++ b/libs/WindowManager/Shell/res/values-sq/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Trokit dy herë pranë një aplikacioni për ta ripozicionuar"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"E kuptova"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Zgjeroje për më shumë informacion."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Maksimizo"</string> + <string name="close_button_text" msgid="2913281996024033299">"Mbyll"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-sv/strings.xml b/libs/WindowManager/Shell/res/values-sv/strings.xml index d58b1e3cafef..54384ca14db9 100644 --- a/libs/WindowManager/Shell/res/values-sv/strings.xml +++ b/libs/WindowManager/Shell/res/values-sv/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Tryck snabbt två gånger bredvid en app för att flytta den"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Utöka för mer information."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Utöka"</string> + <string name="close_button_text" msgid="2913281996024033299">"Stäng"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-sw/strings.xml b/libs/WindowManager/Shell/res/values-sw/strings.xml index 331004aaf109..2f7d2246f939 100644 --- a/libs/WindowManager/Shell/res/values-sw/strings.xml +++ b/libs/WindowManager/Shell/res/values-sw/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Gusa mara mbili karibu na programu ili uihamishe"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Nimeelewa"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Panua ili upate maelezo zaidi."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Panua"</string> + <string name="close_button_text" msgid="2913281996024033299">"Funga"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-te/strings.xml b/libs/WindowManager/Shell/res/values-te/strings.xml index 9f1a97347d78..f0803507b5fc 100644 --- a/libs/WindowManager/Shell/res/values-te/strings.xml +++ b/libs/WindowManager/Shell/res/values-te/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"యాప్ స్థానాన్ని మార్చడానికి దాని పక్కన డబుల్-ట్యాప్ చేయండి"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"అర్థమైంది"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"మరింత సమాచారం కోసం విస్తరించండి."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"గరిష్టీకరించండి"</string> + <string name="close_button_text" msgid="2913281996024033299">"మూసివేయండి"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-tl/strings.xml b/libs/WindowManager/Shell/res/values-tl/strings.xml index 0a7fc9617e8f..bfae45afeb5d 100644 --- a/libs/WindowManager/Shell/res/values-tl/strings.xml +++ b/libs/WindowManager/Shell/res/values-tl/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Mag-double tap sa tabi ng isang app para iposisyon ito ulit"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"OK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"I-expand para sa higit pang impormasyon."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"I-maximize"</string> + <string name="close_button_text" msgid="2913281996024033299">"Isara"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-tr/strings.xml b/libs/WindowManager/Shell/res/values-tr/strings.xml index b437392ca796..6a9be8048505 100644 --- a/libs/WindowManager/Shell/res/values-tr/strings.xml +++ b/libs/WindowManager/Shell/res/values-tr/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Yeniden konumlandırmak için uygulamanın yanına iki kez dokunun"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"Anladım"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Daha fazla bilgi için genişletin."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Ekranı Kapla"</string> + <string name="close_button_text" msgid="2913281996024033299">"Kapat"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-uk/strings.xml b/libs/WindowManager/Shell/res/values-uk/strings.xml index 5a7395c237bf..52f6d1145245 100644 --- a/libs/WindowManager/Shell/res/values-uk/strings.xml +++ b/libs/WindowManager/Shell/res/values-uk/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"Щоб перемістити додаток, двічі торкніться області поруч із ним"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"ОK"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"Розгорніть, щоб дізнатися більше."</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"Збільшити"</string> + <string name="close_button_text" msgid="2913281996024033299">"Закрити"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-ur/strings.xml b/libs/WindowManager/Shell/res/values-ur/strings.xml index e6dc030e5fb2..3abfb0d4fa65 100644 --- a/libs/WindowManager/Shell/res/values-ur/strings.xml +++ b/libs/WindowManager/Shell/res/values-ur/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"کسی ایپ کی پوزیشن تبدیل کرنے کے لیے اس کے آگے دو بار تھپتھپائیں"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"سمجھ آ گئی"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"مزید معلومات کے لیے پھیلائیں۔"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"بڑا کریں"</string> + <string name="close_button_text" msgid="2913281996024033299">"بند کریں"</string> </resources> diff --git a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml index 15bb2939406b..8fed6bfb3eed 100644 --- a/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml +++ b/libs/WindowManager/Shell/res/values-zh-rCN/strings.xml @@ -82,8 +82,6 @@ <string name="letterbox_education_reposition_text" msgid="1068293354123934727">"在某个应用旁边连续点按两次,即可调整它的位置"</string> <string name="letterbox_education_got_it" msgid="4057634570866051177">"知道了"</string> <string name="letterbox_education_expand_button_description" msgid="1729796567101129834">"展开即可了解详情。"</string> - <!-- no translation found for maximize_button_text (1650859196290301963) --> - <skip /> - <!-- no translation found for close_button_text (2913281996024033299) --> - <skip /> + <string name="maximize_button_text" msgid="1650859196290301963">"最大化"</string> + <string name="close_button_text" msgid="2913281996024033299">"关闭"</string> </resources> diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimation.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimation.java index e71a59d26740..8c0affb0a432 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimation.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimation.java @@ -31,13 +31,15 @@ public interface BackAnimation { /** * Called when a {@link MotionEvent} is generated by a back gesture. * - * @param event the original {@link MotionEvent} - * @param action the original {@link KeyEvent#getAction()} when the event was dispatched to + * @param touchX the X touch position of the {@link MotionEvent}. + * @param touchY the Y touch position of the {@link MotionEvent}. + * @param keyAction the original {@link KeyEvent#getAction()} when the event was dispatched to * the process. This is forwarded separately because the input pipeline may mutate * the {#event} action state later. * @param swipeEdge the edge from which the swipe begins. */ - void onBackMotion(MotionEvent event, int action, @BackEvent.SwipeEdge int swipeEdge); + void onBackMotion(float touchX, float touchY, int keyAction, + @BackEvent.SwipeEdge int swipeEdge); /** * Sets whether the back gesture is past the trigger threshold or not. diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java index 89d262b17b59..f061f8bc178a 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/back/BackAnimationController.java @@ -187,8 +187,8 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont @Override public void onBackMotion( - MotionEvent event, int action, @BackEvent.SwipeEdge int swipeEdge) { - mShellExecutor.execute(() -> onMotionEvent(event, action, swipeEdge)); + float touchX, float touchY, int keyAction, @BackEvent.SwipeEdge int swipeEdge) { + mShellExecutor.execute(() -> onMotionEvent(touchX, touchY, keyAction, swipeEdge)); } @Override @@ -259,33 +259,34 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont * Called when a new motion event needs to be transferred to this * {@link BackAnimationController} */ - public void onMotionEvent(MotionEvent event, int action, @BackEvent.SwipeEdge int swipeEdge) { + public void onMotionEvent(float touchX, float touchY, int keyAction, + @BackEvent.SwipeEdge int swipeEdge) { if (mTransitionInProgress) { return; } - if (action == MotionEvent.ACTION_MOVE) { + if (keyAction == MotionEvent.ACTION_MOVE) { if (!mBackGestureStarted) { // Let the animation initialized here to make sure the onPointerDownOutsideFocus // could be happened when ACTION_DOWN, it may change the current focus that we // would access it when startBackNavigation. - initAnimation(event); + initAnimation(touchX, touchY); } - onMove(event, swipeEdge); - } else if (action == MotionEvent.ACTION_UP || action == MotionEvent.ACTION_CANCEL) { + onMove(touchX, touchY, swipeEdge); + } else if (keyAction == MotionEvent.ACTION_UP || keyAction == MotionEvent.ACTION_CANCEL) { ProtoLog.d(WM_SHELL_BACK_PREVIEW, - "Finishing gesture with event action: %d", action); + "Finishing gesture with event action: %d", keyAction); onGestureFinished(); } } - private void initAnimation(MotionEvent event) { + private void initAnimation(float touchX, float touchY) { ProtoLog.d(WM_SHELL_BACK_PREVIEW, "initAnimation mMotionStarted=%b", mBackGestureStarted); if (mBackGestureStarted || mBackNavigationInfo != null) { Log.e(TAG, "Animation is being initialized but is already started."); finishAnimation(); } - mInitTouchLocation.set(event.getX(), event.getY()); + mInitTouchLocation.set(touchX, touchY); mBackGestureStarted = true; try { @@ -354,18 +355,18 @@ public class BackAnimationController implements RemoteCallable<BackAnimationCont mTransaction.setVisibility(screenshotSurface, true); } - private void onMove(MotionEvent event, @BackEvent.SwipeEdge int swipeEdge) { + private void onMove(float touchX, float touchY, @BackEvent.SwipeEdge int swipeEdge) { if (!mBackGestureStarted || mBackNavigationInfo == null) { return; } - int deltaX = Math.round(event.getX() - mInitTouchLocation.x); + int deltaX = Math.round(touchX - mInitTouchLocation.x); float progressThreshold = PROGRESS_THRESHOLD >= 0 ? PROGRESS_THRESHOLD : mProgressThreshold; float progress = Math.min(Math.max(Math.abs(deltaX) / progressThreshold, 0), 1); int backType = mBackNavigationInfo.getType(); RemoteAnimationTarget animationTarget = mBackNavigationInfo.getDepartingAnimationTarget(); BackEvent backEvent = new BackEvent( - event.getX(), event.getY(), progress, swipeEdge, animationTarget); + touchX, touchY, progress, swipeEdge, animationTarget); IOnBackInvokedCallback targetCallback = null; if (shouldDispatchToLauncher(backType)) { targetCallback = mBackToLauncherCallback; diff --git a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java index fcfcbfa091db..e7c5cb2183db 100644 --- a/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java +++ b/libs/WindowManager/Shell/tests/unittest/src/com/android/wm/shell/back/BackAnimationControllerTest.java @@ -298,7 +298,7 @@ public class BackAnimationControllerTest { private void doMotionEvent(int actionDown, int coordinate) { mController.onMotionEvent( - MotionEvent.obtain(0, mEventTime, actionDown, coordinate, coordinate, 0), + coordinate, coordinate, actionDown, BackEvent.EDGE_LEFT); mEventTime += 10; diff --git a/location/java/android/location/package.html b/location/java/android/location/package.html index 20c5c54d6921..9e048d6f5f07 100644 --- a/location/java/android/location/package.html +++ b/location/java/android/location/package.html @@ -1,17 +1,13 @@ <html> <body> - -<p>Contains the framework API classes that define Android location-based and - related services.</p> -<p class="warning"> -<strong>This API is not the recommended method for accessing Android location.</strong><br> -The -<a href="https://developers.google.com/android/reference/com/google/android/gms/location/package-summary">Google Location Services API</a>, -part of Google Play services, is the preferred way to add location-awareness to -your app. It offers a simpler API, higher accuracy, low-power geofencing, and -more. If you are currently using the android.location API, you are strongly -encouraged to switch to the Google Location Services API as soon as -possible. +<p>Contains framework API classes for accessing a variety of location related services.</p> +<p class="note"><strong>Note:</strong> The +<a href="https://developers.google.com/android/reference/com/google/android/gms/location/package-summary">Google Location Services APIs</a>, +part of Google Play services, is the preferred way to access location services for apps. These APIs +are both simpler to use and offer more capabilities as compared to the traditional Android location +APIs found here. They also offer new services, such as low-power geofencing, activity recognition, +and more. Clients of the traditional Android location APIs are encouraged to switch to the Google +Location Services APIs wherever possible. <br><br> To learn more about the Google Location Services API, see the <a href="{@docRoot}google/play-services/location.html">Location API overview</a>. diff --git a/packages/CompanionDeviceManager/res/values-ar/strings.xml b/packages/CompanionDeviceManager/res/values-ar/strings.xml index eca3b573ceba..d69ec1b62e4c 100644 --- a/packages/CompanionDeviceManager/res/values-ar/strings.xml +++ b/packages/CompanionDeviceManager/res/values-ar/strings.xml @@ -18,8 +18,8 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="4470785958457506021">"تطبيق \"مدير الجهاز المصاحب\""</string> <string name="confirmation_title" msgid="3785000297483688997">"السماح لتطبيق <strong><xliff:g id="APP_NAME">%1$s</xliff:g></strong> بالوصول إلى <strong><xliff:g id="DEVICE_NAME">%2$s</xliff:g></strong>"</string> - <string name="profile_name_watch" msgid="576290739483672360">"ساعة"</string> - <string name="chooser_title" msgid="2262294130493605839">"اختَر <xliff:g id="PROFILE_NAME">%1$s</xliff:g> ليديره تطبيق <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> + <string name="profile_name_watch" msgid="576290739483672360">"الساعة"</string> + <string name="chooser_title" msgid="2262294130493605839">"اختَر <xliff:g id="PROFILE_NAME">%1$s</xliff:g> ليديرها تطبيق <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> <string name="summary_watch" msgid="3002344206574997652">"هذا التطبيق مطلوب لإدارة <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. سيتم السماح لتطبيق <xliff:g id="APP_NAME">%2$s</xliff:g> بالتفاعل مع الإشعارات والوصول إلى أذونات الهاتف والرسائل القصيرة وجهات الاتصال والتقويم وسجلّات المكالمات والأجهزة المجاورة."</string> <string name="permission_apps" msgid="6142133265286656158">"التطبيقات"</string> <string name="permission_apps_summary" msgid="798718816711515431">"بث تطبيقات هاتفك"</string> diff --git a/packages/CompanionDeviceManager/res/values-de/strings.xml b/packages/CompanionDeviceManager/res/values-de/strings.xml index 7e5857525da6..8fed026e8368 100644 --- a/packages/CompanionDeviceManager/res/values-de/strings.xml +++ b/packages/CompanionDeviceManager/res/values-de/strings.xml @@ -19,7 +19,7 @@ <string name="app_label" msgid="4470785958457506021">"Begleitgerät-Manager"</string> <string name="confirmation_title" msgid="3785000297483688997">"<strong><xliff:g id="APP_NAME">%1$s</xliff:g></strong> erlauben, auf dein Gerät (<strong><xliff:g id="DEVICE_NAME">%2$s</xliff:g></strong>) zuzugreifen"</string> <string name="profile_name_watch" msgid="576290739483672360">"Smartwatch"</string> - <string name="chooser_title" msgid="2262294130493605839">"Gerät (<xliff:g id="PROFILE_NAME">%1$s</xliff:g>) auswählen, das von <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong> verwaltet werden soll"</string> + <string name="chooser_title" msgid="2262294130493605839">"Gerät „<xliff:g id="PROFILE_NAME">%1$s</xliff:g>“ auswählen, das von <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong> verwaltet werden soll"</string> <string name="summary_watch" msgid="3002344206574997652">"Diese App wird zur Verwaltung des Geräts „<xliff:g id="DEVICE_NAME">%1$s</xliff:g>“ benötigt. <xliff:g id="APP_NAME">%2$s</xliff:g> darf mit deinen Benachrichtigungen interagieren und auf die Berechtigungen für „Telefon“, „SMS“, „Kontakte“, „Kalender“, „Anrufliste“ und „Geräte in der Nähe“ zugreifen."</string> <string name="permission_apps" msgid="6142133265286656158">"Apps"</string> <string name="permission_apps_summary" msgid="798718816711515431">"Smartphone-Apps streamen"</string> diff --git a/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml b/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml index 8dff83b46048..4797315bbb01 100644 --- a/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml +++ b/packages/CompanionDeviceManager/res/values-es-rUS/strings.xml @@ -19,7 +19,7 @@ <string name="app_label" msgid="4470785958457506021">"Administrador de dispositivo complementario"</string> <string name="confirmation_title" msgid="3785000297483688997">"Permite que <strong><xliff:g id="APP_NAME">%1$s</xliff:g></strong> acceda a tu <strong><xliff:g id="DEVICE_NAME">%2$s</xliff:g></strong>"</string> <string name="profile_name_watch" msgid="576290739483672360">"reloj"</string> - <string name="chooser_title" msgid="2262294130493605839">"Elige un <xliff:g id="PROFILE_NAME">%1$s</xliff:g> para que <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong> lo administre"</string> + <string name="chooser_title" msgid="2262294130493605839">"Elige un <xliff:g id="PROFILE_NAME">%1$s</xliff:g> para que la app <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong> lo administre"</string> <string name="summary_watch" msgid="3002344206574997652">"Esta app es necesaria para administrar tu <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. <xliff:g id="APP_NAME">%2$s</xliff:g> podrá interactuar con tus notificaciones y acceder a los permisos de Teléfono, SMS, Contactos, Calendario, Llamadas y Dispositivos cercanos."</string> <string name="permission_apps" msgid="6142133265286656158">"Apps"</string> <string name="permission_apps_summary" msgid="798718816711515431">"Transmitir las apps de tu teléfono"</string> diff --git a/packages/CompanionDeviceManager/res/values-fa/strings.xml b/packages/CompanionDeviceManager/res/values-fa/strings.xml index d9d64afe9ca6..4e500cc4a9be 100644 --- a/packages/CompanionDeviceManager/res/values-fa/strings.xml +++ b/packages/CompanionDeviceManager/res/values-fa/strings.xml @@ -39,7 +39,7 @@ <string name="profile_name_generic" msgid="6851028682723034988">"دستگاه"</string> <string name="summary_generic" msgid="2346762210105903720"></string> <string name="consent_yes" msgid="8344487259618762872">"اجازه دادن"</string> - <string name="consent_no" msgid="2640796915611404382">"مجاز نبودن"</string> + <string name="consent_no" msgid="2640796915611404382">"اجازه ندادن"</string> <string name="consent_back" msgid="2560683030046918882">"برگشت"</string> <string name="permission_sync_confirmation_title" msgid="4409622174437248702">"به برنامههای موجود در <strong><xliff:g id="COMPANION_DEVICE_NAME">%1$s</xliff:g></strong> همان اجازههای <strong><xliff:g id="PRIMARY_DEVICE_NAME">%2$s</xliff:g></strong> داده شود؟"</string> <string name="permission_sync_summary" msgid="4866838188678457084">"<p>این اجازهها میتواند شامل دسترسی به «میکروفون»، «دوربین»، و «مکان»، و دیگر اجازههای حساس در <strong><xliff:g id="COMPANION_DEVICE_NAME_0">%1$s</xliff:g></strong> شود.</p> <p>هروقت بخواهید میتوانید این اجازهها را در «تنظیمات» در <strong><xliff:g id="COMPANION_DEVICE_NAME_1">%1$s</xliff:g></strong> تغییر دهید.</p>"</string> diff --git a/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml b/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml index 4cd93fa9b92a..c6696d5b2b62 100644 --- a/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml +++ b/packages/CompanionDeviceManager/res/values-fr-rCA/strings.xml @@ -19,7 +19,7 @@ <string name="app_label" msgid="4470785958457506021">"Gestionnaire d\'appareil compagnon"</string> <string name="confirmation_title" msgid="3785000297483688997">"Autoriser <strong><xliff:g id="APP_NAME">%1$s</xliff:g></strong> à accéder à votre <strong><xliff:g id="DEVICE_NAME">%2$s</xliff:g></strong>"</string> <string name="profile_name_watch" msgid="576290739483672360">"montre"</string> - <string name="chooser_title" msgid="2262294130493605839">"Choisissez un <xliff:g id="PROFILE_NAME">%1$s</xliff:g> qui sera géré par <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> + <string name="chooser_title" msgid="2262294130493605839">"Choisissez un(e) <xliff:g id="PROFILE_NAME">%1$s</xliff:g> qui sera géré(e) par <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> <string name="summary_watch" msgid="3002344206574997652">"Cette application est nécessaire pour gérer votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. <xliff:g id="APP_NAME">%2$s</xliff:g> aura l\'autorisation d\'interagir avec vos notifications et d\'accéder aux autorisations suivantes : téléphone, messages texte, contacts, agenda, journaux d\'appels et appareils à proximité."</string> <string name="permission_apps" msgid="6142133265286656158">"Applications"</string> <string name="permission_apps_summary" msgid="798718816711515431">"Diffusez les applications de votre téléphone"</string> diff --git a/packages/CompanionDeviceManager/res/values-fr/strings.xml b/packages/CompanionDeviceManager/res/values-fr/strings.xml index af7d83b95fc1..6d0e2d396af8 100644 --- a/packages/CompanionDeviceManager/res/values-fr/strings.xml +++ b/packages/CompanionDeviceManager/res/values-fr/strings.xml @@ -19,7 +19,7 @@ <string name="app_label" msgid="4470785958457506021">"Gestionnaire d\'appareils associés"</string> <string name="confirmation_title" msgid="3785000297483688997">"Autoriser <strong><xliff:g id="APP_NAME">%1$s</xliff:g></strong> à accéder à votre <strong><xliff:g id="DEVICE_NAME">%2$s</xliff:g></strong>"</string> <string name="profile_name_watch" msgid="576290739483672360">"montre"</string> - <string name="chooser_title" msgid="2262294130493605839">"Sélectionner le/la <xliff:g id="PROFILE_NAME">%1$s</xliff:g> qui sera géré(e) par <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> + <string name="chooser_title" msgid="2262294130493605839">"Sélectionnez le/la <xliff:g id="PROFILE_NAME">%1$s</xliff:g> qui sera géré(e) par <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> <string name="summary_watch" msgid="3002344206574997652">"Cette appli est nécessaire pour gérer votre <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. <xliff:g id="APP_NAME">%2$s</xliff:g> aura l\'autorisation d\'interagir avec vos notifications et d\'accéder au téléphone, aux SMS, aux contacts, à l\'agenda, aux journaux d\'appels et aux appareils à proximité."</string> <string name="permission_apps" msgid="6142133265286656158">"Applis"</string> <string name="permission_apps_summary" msgid="798718816711515431">"Diffuser en streaming les applis de votre téléphone"</string> diff --git a/packages/CompanionDeviceManager/res/values-hi/strings.xml b/packages/CompanionDeviceManager/res/values-hi/strings.xml index 751333d15e3a..a8c6c6f6c605 100644 --- a/packages/CompanionDeviceManager/res/values-hi/strings.xml +++ b/packages/CompanionDeviceManager/res/values-hi/strings.xml @@ -19,7 +19,7 @@ <string name="app_label" msgid="4470785958457506021">"सहयोगी डिवाइस मैनेजर"</string> <string name="confirmation_title" msgid="3785000297483688997">"<strong><xliff:g id="APP_NAME">%1$s</xliff:g></strong> को <strong><xliff:g id="DEVICE_NAME">%2$s</xliff:g></strong> ऐक्सेस करने की अनुमति दें"</string> <string name="profile_name_watch" msgid="576290739483672360">"स्मार्टवॉच"</string> - <string name="chooser_title" msgid="2262294130493605839">"कोई <xliff:g id="PROFILE_NAME">%1$s</xliff:g> चुनें, ताकि उसे <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong> की मदद से प्रबंधित किया जा सके"</string> + <string name="chooser_title" msgid="2262294130493605839">"कोई <xliff:g id="PROFILE_NAME">%1$s</xliff:g> चुनें, ताकि उसे <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong> की मदद से मैनेज किया जा सके"</string> <string name="summary_watch" msgid="3002344206574997652">"यह ऐप्लिकेशन, <xliff:g id="DEVICE_NAME">%1$s</xliff:g> को मैनेज करने के लिए ज़रूरी है. <xliff:g id="APP_NAME">%2$s</xliff:g> आपकी सूचनाओं पर कार्रवाई कर पाएगा. साथ ही, इसे आपके फ़ोन, एसएमएस, संपर्कों, कैलेंडर, कॉल लॉग, और आस-पास मौजूद डिवाइसों को ऐक्सेस करने की अनुमति मिल पाएगी."</string> <string name="permission_apps" msgid="6142133265286656158">"ऐप्लिकेशन"</string> <string name="permission_apps_summary" msgid="798718816711515431">"अपने फ़ोन के ऐप्लिकेशन को स्ट्रीम करें"</string> diff --git a/packages/CompanionDeviceManager/res/values-it/strings.xml b/packages/CompanionDeviceManager/res/values-it/strings.xml index 952b090d57ec..3997a6e1ee66 100644 --- a/packages/CompanionDeviceManager/res/values-it/strings.xml +++ b/packages/CompanionDeviceManager/res/values-it/strings.xml @@ -19,7 +19,7 @@ <string name="app_label" msgid="4470785958457506021">"Gestione dispositivi companion"</string> <string name="confirmation_title" msgid="3785000297483688997">"Consenti all\'app <strong><xliff:g id="APP_NAME">%1$s</xliff:g></strong> di accedere <strong><xliff:g id="DEVICE_NAME">%2$s</xliff:g></strong>"</string> <string name="profile_name_watch" msgid="576290739483672360">"orologio"</string> - <string name="chooser_title" msgid="2262294130493605839">"Scegli un <xliff:g id="PROFILE_NAME">%1$s</xliff:g> che sia gestito da <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> + <string name="chooser_title" msgid="2262294130493605839">"Scegli un <xliff:g id="PROFILE_NAME">%1$s</xliff:g> da gestire con <strong><xliff:g id="APP_NAME">%2$s</xliff:g></strong>"</string> <string name="summary_watch" msgid="3002344206574997652">"Questa app è necessaria per gestire il tuo <xliff:g id="DEVICE_NAME">%1$s</xliff:g>. L\'app <xliff:g id="APP_NAME">%2$s</xliff:g> potrà interagire con le tue notifiche e accedere alle autorizzazioni Telefono, SMS, Contatti, Calendar, Registri chiamate e Dispositivi nelle vicinanze."</string> <string name="permission_apps" msgid="6142133265286656158">"App"</string> <string name="permission_apps_summary" msgid="798718816711515431">"Trasmetti in streaming le app del tuo telefono"</string> diff --git a/packages/CompanionDeviceManager/res/values-ky/strings.xml b/packages/CompanionDeviceManager/res/values-ky/strings.xml index 4563d3741d51..63d6fbafcb46 100644 --- a/packages/CompanionDeviceManager/res/values-ky/strings.xml +++ b/packages/CompanionDeviceManager/res/values-ky/strings.xml @@ -38,7 +38,7 @@ <string name="helper_summary_computer" msgid="1676407599909474428">"<xliff:g id="APP_NAME">%1$s</xliff:g> колдонмосу <xliff:g id="DEVICE_TYPE">%2$s</xliff:g> түзмөгүңүздүн атынан түзмөктөрүңүздүн ортосунда колдонмолорду тышкы экранга чыгарууга уруксат сурап жатат"</string> <string name="profile_name_generic" msgid="6851028682723034988">"түзмөк"</string> <string name="summary_generic" msgid="2346762210105903720"></string> - <string name="consent_yes" msgid="8344487259618762872">"Уруксат берүү"</string> + <string name="consent_yes" msgid="8344487259618762872">"Ооба"</string> <string name="consent_no" msgid="2640796915611404382">"Уруксат берилбесин"</string> <string name="consent_back" msgid="2560683030046918882">"Артка"</string> <string name="permission_sync_confirmation_title" msgid="4409622174437248702">"<strong><xliff:g id="COMPANION_DEVICE_NAME">%1$s</xliff:g></strong> түзмөгүнө да <strong><xliff:g id="PRIMARY_DEVICE_NAME">%2$s</xliff:g></strong> түзмөгүнө берилген уруксаттар берилсинби?"</string> diff --git a/packages/InputDevices/res/values-fi/strings.xml b/packages/InputDevices/res/values-fi/strings.xml index a20416f75714..f3bef4d97117 100644 --- a/packages/InputDevices/res/values-fi/strings.xml +++ b/packages/InputDevices/res/values-fi/strings.xml @@ -3,7 +3,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="app_label" msgid="8016145283189546017">"Syöttölaitteet"</string> <string name="keyboard_layouts_label" msgid="6688773268302087545">"Android-näppäimistö"</string> - <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"englanti (Iso-Britannia)"</string> + <string name="keyboard_layout_english_uk_label" msgid="6664258463319999632">"englanti (Yhdistynyt kuningaskunta)"</string> <string name="keyboard_layout_english_us_label" msgid="8994890249649106291">"englanti (Yhdysvallat)"</string> <string name="keyboard_layout_english_us_intl" msgid="3705168594034233583">"englanti (Yhdysvallat), kansainvälinen"</string> <string name="keyboard_layout_english_us_colemak_label" msgid="4194969610343455380">"englanti (Yhdysvallat), Colemak"</string> diff --git a/packages/PackageInstaller/res/values-it/strings.xml b/packages/PackageInstaller/res/values-it/strings.xml index 979de608736c..74f7d908120f 100644 --- a/packages/PackageInstaller/res/values-it/strings.xml +++ b/packages/PackageInstaller/res/values-it/strings.xml @@ -46,7 +46,7 @@ <string name="out_of_space_dlg_text" msgid="8727714096031856231">"Impossibile installare <xliff:g id="APP_NAME">%1$s</xliff:g>. Libera dello spazio e riprova."</string> <string name="app_not_found_dlg_title" msgid="5107924008597470285">"App non trovata"</string> <string name="app_not_found_dlg_text" msgid="5219983779377811611">"Impossibile trovare l\'applicazione nell\'elenco di applicazioni installate."</string> - <string name="user_is_not_allowed_dlg_title" msgid="6915293433252210232">"Autorizzazione non concessa"</string> + <string name="user_is_not_allowed_dlg_title" msgid="6915293433252210232">"Non autorizzate"</string> <string name="user_is_not_allowed_dlg_text" msgid="3468447791330611681">"L\'utente corrente non è autorizzato a eseguire questa disinstallazione."</string> <string name="generic_error_dlg_title" msgid="5863195085927067752">"Errore"</string> <string name="generic_error_dlg_text" msgid="5287861443265795232">"Impossibile disinstallare l\'app."</string> diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml index a52590f341b1..cf6040e0509e 100644 --- a/packages/SettingsLib/res/values-ar/strings.xml +++ b/packages/SettingsLib/res/values-ar/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"صوت عالي الدقة: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"صوت عالي الدقة"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"سماعات الأذن الطبية"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"تمّ التوصيل بسماعات الأذن الطبية"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"متصل بـ LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"متصل بالإعدادات الصوتية للوسائط"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"متصل بالإعدادات الصوتية للهاتف"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"متصل بخادم نقل الملف"</string> diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml index 52cc5a14873d..222b6caf3fde 100644 --- a/packages/SettingsLib/res/values-as/strings.xml +++ b/packages/SettingsLib/res/values-as/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"এইচ্ছডি অডি\'অ: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"এইচ্ছডি অডিঅ’"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"শ্ৰৱণ যন্ত্ৰ"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE অডিঅ’"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"শ্ৰৱণ যন্ত্ৰলৈ সংযোগ কৰা হৈছে"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE অডিঅ’ৰ সৈতে সংযোগ কৰক"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"মিডিয়া অডিঅ’লৈ সংযোগ হৈছে"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"ফ’ন অডিঅ\'ৰ লগত সংযোগ কৰা হ’ল"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"ফাইল ট্ৰান্সফাৰ ছাৰ্ভাৰৰ সৈতে সংযোজিত হৈ আছে"</string> diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml index 595d1592ad0d..4efc63c59aeb 100644 --- a/packages/SettingsLib/res/values-az/strings.xml +++ b/packages/SettingsLib/res/values-az/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD audio: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD audio"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Eşitmə cihazları"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Eşitmə Aparatlarına qoşuldu"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE audiosuna qoşulub"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Media audioya birləşdirilib"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Telefon audiosuna qoşulu"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Fayl transfer serverinə qoşulu"</string> diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml index ace77256bd59..a309c8e86312 100644 --- a/packages/SettingsLib/res/values-bg/strings.xml +++ b/packages/SettingsLib/res/values-bg/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Висококачествено аудио: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Висококачествено аудио"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Слухови апарати"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Установена е връзка със слухов апарат"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Свързано с LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Установена е връзка с медийно аудио"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Връзка със звука на телефона"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Установена е връзка със сървър за трансфер на файлове"</string> diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml index 359796f5374c..db3220adc1de 100644 --- a/packages/SettingsLib/res/values-bs/strings.xml +++ b/packages/SettingsLib/res/values-bs/strings.xml @@ -125,9 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD audio: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD audio"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Slušni aparati"</string> - <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE_AUDIO"</string> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE zvuk"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Povezan na slušne aparate"</string> - <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Povezano s profilom LE_AUDIO"</string> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Povezano s LE zvukom"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Povezano sa zvukom medija"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Povezano na zvuk telefona"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Povezano sa serverom za prijenos podataka"</string> diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml index ab5c6c550011..4fe6187c8861 100644 --- a/packages/SettingsLib/res/values-ca/strings.xml +++ b/packages/SettingsLib/res/values-ca/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Àudio HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Àudio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Audiòfons"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"S\'ha connectat als audiòfons"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Connectat a LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Connectat a l\'àudio del mitjà"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Connectat a àudio del telèfon"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Connectat al servidor de transferència de fitxers"</string> diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml index 1fc966a60814..872e38e73435 100644 --- a/packages/SettingsLib/res/values-cs/strings.xml +++ b/packages/SettingsLib/res/values-cs/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD zvuk: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD zvuk"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Naslouchátka"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Připojeno k naslouchátkům"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Připojeno k LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Připojeno ke zvukovému médiu"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Připojeno k náhlavní soupravě"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Připojeno k serveru pro přenos dat"</string> diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml index c4f4a14f648f..bb7bee2af0bc 100644 --- a/packages/SettingsLib/res/values-da/strings.xml +++ b/packages/SettingsLib/res/values-da/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD-lyd: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD-lyd"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Høreapparater"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Forbundet til høreapparater"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Forbundet med LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Forbundet til medielyd"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Forbundet til telefonlyd"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Forbundet til filoverførselsserver"</string> diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml index 9f08c8c76cc6..a1693ce0773e 100644 --- a/packages/SettingsLib/res/values-de/strings.xml +++ b/packages/SettingsLib/res/values-de/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD-Audio: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD-Audio"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Hörhilfen"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Mit Hörhilfen verbunden"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Mit LE Audio verbunden"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Verbunden mit Medien-Audio"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Verbunden mit Telefon-Audio"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Mit Dateiübertragungsserver verbunden"</string> diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml index 602fe8398737..2614f7107a76 100644 --- a/packages/SettingsLib/res/values-en-rCA/strings.xml +++ b/packages/SettingsLib/res/values-en-rCA/strings.xml @@ -628,7 +628,7 @@ <string name="media_transfer_wired_usb_device_name" msgid="7699141088423210903">"Wired headphones"</string> <string name="wifi_hotspot_switch_on_text" msgid="9212273118217786155">"On"</string> <string name="wifi_hotspot_switch_off_text" msgid="7245567251496959764">"Off"</string> - <string name="carrier_network_change_mode" msgid="4257621815706644026">"Operator network changing"</string> + <string name="carrier_network_change_mode" msgid="4257621815706644026">"Carrier network changing"</string> <string name="data_connection_3g" msgid="931852552688157407">"3G"</string> <string name="data_connection_edge" msgid="4625509456544797637">"EDGE"</string> <string name="data_connection_cdma" msgid="9098161966701934334">"1X"</string> diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml index 8bc46b49150d..1116134c13f9 100644 --- a/packages/SettingsLib/res/values-es/strings.xml +++ b/packages/SettingsLib/res/values-es/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Audio HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Audio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Audífonos"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"Le Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Conectado a audífonos"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Conectado a LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Conectado al audio del medio"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Conectado al audio del teléfono"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Conectado con el servidor de transferencia de archivos"</string> diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml index cf073ff1e6c2..64b524999200 100644 --- a/packages/SettingsLib/res/values-et/strings.xml +++ b/packages/SettingsLib/res/values-et/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD-heli: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD-heli"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Kuuldeaparaadid"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Kuuldeaparaatidega ühendatud"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Ühendatud üksusega LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Ühendatud meediumiheliga"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Ühendatud telefoniheliga"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Ühendatud failiedastuse serveriga"</string> diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml index eb67a490b112..9a7ce75fd4ae 100644 --- a/packages/SettingsLib/res/values-fa/strings.xml +++ b/packages/SettingsLib/res/values-fa/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"صدای HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"صدای HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"سمعک"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"صدای LE"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"به سمعک متصل شد"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"متصل به صدای LE"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"به رسانه صوتی متصل شد"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"به تلفن صوتی متصل شد"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"به سرور انتقال فایل متصل شد"</string> diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml index fb3c771ebf8b..718624872934 100644 --- a/packages/SettingsLib/res/values-fi/strings.xml +++ b/packages/SettingsLib/res/values-fi/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD-ääni: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD-ääni"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Kuulolaitteet"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Yhdistetty kuulolaitteisiin"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE Audio yhdistetty"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Yhdistetty median ääneen"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Yhdistetty puhelimen ääneen"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Yhdistetty tiedostonsiirtopalvelimeen"</string> diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml index e53eb6bcb81f..6b5102c5b662 100644 --- a/packages/SettingsLib/res/values-fr-rCA/strings.xml +++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Audio HD : <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Audio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Prothèses auditives"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Connecté aux prothèses auditives"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Connecté par LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Connecté aux paramètres audio du média"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Connecté à l\'audio du téléphone"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Connexion au serveur de transfert de fichiers"</string> diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml index 98e0fa7d5107..47026629c7ee 100644 --- a/packages/SettingsLib/res/values-fr/strings.xml +++ b/packages/SettingsLib/res/values-fr/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Audio HD : <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Audio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Appareils auditifs"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Connexion établie avec les appareils auditifs"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Connecté à LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Connecté aux paramètres audio du média"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Connecté aux paramètres audio du téléphone"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Connexion au serveur de transfert de fichiers"</string> diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml index c523d5b64164..ec636618e59f 100644 --- a/packages/SettingsLib/res/values-gl/strings.xml +++ b/packages/SettingsLib/res/values-gl/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Audio en HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Audio en HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Audiófonos"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"Audio de baixo consumo"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Conectado a audiófonos"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Estableceuse conexión co audio de baixo consumo"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Conectado ao audio multimedia"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Conectado ao audio do teléfono"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Conectado ao servidor de transferencia de ficheiros"</string> diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml index 7689cf0fdd5c..96fba8f5eba9 100644 --- a/packages/SettingsLib/res/values-hi/strings.xml +++ b/packages/SettingsLib/res/values-hi/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"एचडी ऑडियो: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"एचडी ऑडियो"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"कान की मशीन"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"सुनने में मदद करने वाले डिवाइस से कनेक्ट है"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE Audio से कनेक्ट किया गया"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"मीडिया ऑडियो से कनेक्ट किया गया"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"फ़ोन ऑडियो से कनेक्ट किया गया"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"फ़ाइल स्थानांतरण सर्वर से कनेक्ट किया गया"</string> diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml index a64c0c1ec659..94c4abd2abbc 100644 --- a/packages/SettingsLib/res/values-hy/strings.xml +++ b/packages/SettingsLib/res/values-hy/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD աուդիո՝ <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD աուդիո"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Լսողական ապարատ"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Լսողական ապարատը միացված է"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Միացած է LE audio-ին"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Միացված է մեդիա աուդիոյին"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Միացված է հեռախոսի ձայնային տվյալներին"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Միացված է ֆայլերի փոխանցման սերվերին"</string> diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml index 2b752136a6c9..cd74fea2fb2b 100644 --- a/packages/SettingsLib/res/values-in/strings.xml +++ b/packages/SettingsLib/res/values-in/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Audio HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Audio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Alat Bantu Dengar"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Terhubung ke Alat Bantu Dengar"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Terhubung ke LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Terhubung ke media audio"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Terhubung ke audio ponsel"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Sambungkan ke server transfer file"</string> diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml index 60a15b852086..7130c80ada14 100644 --- a/packages/SettingsLib/res/values-it/strings.xml +++ b/packages/SettingsLib/res/values-it/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Audio HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Audio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Apparecchi acustici"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Connessione con gli apparecchi acustici stabilita"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Connesso a LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Collegato ad audio media"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Collegato ad audio telefono"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Collegato al server di trasferimento file"</string> diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml index 271dceca530d..3e7b7d85b7b8 100644 --- a/packages/SettingsLib/res/values-iw/strings.xml +++ b/packages/SettingsLib/res/values-iw/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"אודיו באיכות HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"אודיו באיכות HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"מכשירי שמיעה"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"מחובר אל מכשירי שמיעה"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"מחובר אל LE audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"מחובר לאודיו של מדיה"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"מחובר לאודיו של הטלפון"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"מחובר לשרת העברת קבצים"</string> diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml index 873a4c4a6b26..4e6c576c707f 100644 --- a/packages/SettingsLib/res/values-kk/strings.xml +++ b/packages/SettingsLib/res/values-kk/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD форматты аудио: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD форматты аудио"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Есту аппараттары"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Есту аппараттарына жалғанған"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE Audio-ға жалғанды."</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Медиа аудиосына жалғанған"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Телефон аудиосына қосылған"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Файл жіберу серверіне жалғанған"</string> diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml index 27dedcabeaba..899f2de80157 100644 --- a/packages/SettingsLib/res/values-ko/strings.xml +++ b/packages/SettingsLib/res/values-ko/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD 오디오: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD 오디오"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"보청기"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE 오디오"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"보청기에 연결됨"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE 오디오에 연결됨"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"미디어 오디오에 연결됨"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"휴대전화 오디오에 연결됨"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"파일 전송 서버에 연결됨"</string> diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml index ba87fdde2d93..a65ada07b821 100644 --- a/packages/SettingsLib/res/values-lo/strings.xml +++ b/packages/SettingsLib/res/values-lo/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"ສຽງ HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"ສຽງ HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"ອຸປະກອນຊ່ວຍຟັງ"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"ສຽງ LE"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"ເຊື່ອມຕໍ່ຫາອຸປະກອນຊ່ວຍຟັງແລ້ວ"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"ເຊື່ອມຕໍ່ຫາສຽງ LE ແລ້ວ"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"ເຊື່ອມຕໍ່ກັບສື່ດ້ານສຽງແລ້ວ"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"ເຊື່ອມຕໍ່ກັບສຽງໂທລະສັບແລ້ວ"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"ເຊື່ອມຕໍ່ກັບເຊີບເວີໂອນຍ້າຍໄຟລ໌ແລ້ວ"</string> diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml index 18b2fa076e25..79856785d627 100644 --- a/packages/SettingsLib/res/values-lt/strings.xml +++ b/packages/SettingsLib/res/values-lt/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD garsas: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD garsas"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Klausos aparatai"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Prisijungta prie klausos aparatų"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Prisijungta prie „LE Audio“"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Prijungta prie medijos garso įrašo"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Prijungta prie telefono garso"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Prijungta prie failų perkėlimo serverio"</string> diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml index 792d9b92a126..63af239f69a9 100644 --- a/packages/SettingsLib/res/values-lv/strings.xml +++ b/packages/SettingsLib/res/values-lv/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD audio: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD audio"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Dzirdes aparāti"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Izveidots savienojums ar dzirdes aparātiem"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Izveidots savienojums ar LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Savienots ar multivides audio"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Savienots ar tālruņa audio"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Savienots ar failu pārsūtīšanas serveri"</string> diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml index 51a2a916a3b3..838e96139c8e 100644 --- a/packages/SettingsLib/res/values-nb/strings.xml +++ b/packages/SettingsLib/res/values-nb/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD-lyd: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD-lyd"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Høreapparater"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE-lyd"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Koblet til høreapparater"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Koblet til LE-lyd"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Koblet til medielyd"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Koblet til telefonlyd"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Koblet til tjener for filoverføring"</string> diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml index 5fe0586f5985..1330fa747a00 100644 --- a/packages/SettingsLib/res/values-pa/strings.xml +++ b/packages/SettingsLib/res/values-pa/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD ਆਡੀਓ: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD ਆਡੀਓ"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"ਸੁਣਨ ਦੇ ਸਾਧਨ"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE ਆਡੀਓ"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"ਸੁਣਨ ਦੇ ਸਾਧਨਾਂ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE ਆਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ ਗਿਆ"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"ਮੀਡੀਆ ਆਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"ਫ਼ੋਨ ਔਡੀਓ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"ਫਾਈਲ ਟ੍ਰਾਂਸਫ਼ਰ ਸਰਵਰ ਨਾਲ ਕਨੈਕਟ ਕੀਤਾ"</string> diff --git a/packages/SettingsLib/res/values-pl/arrays.xml b/packages/SettingsLib/res/values-pl/arrays.xml index 1bab7d8f186f..5f91d35bb31b 100644 --- a/packages/SettingsLib/res/values-pl/arrays.xml +++ b/packages/SettingsLib/res/values-pl/arrays.xml @@ -64,7 +64,7 @@ <item msgid="2779123106632690576">"Włączono"</item> </string-array> <string-array name="bluetooth_avrcp_versions"> - <item msgid="6603880723315236832">"AVRCP 1.5 (domyślna)"</item> + <item msgid="6603880723315236832">"AVRCP 1.5 (domyślnie)"</item> <item msgid="1637054408779685086">"AVRCP 1.3"</item> <item msgid="5896162189744596291">"AVRCP 1.4"</item> <item msgid="7556896992111771426">"AVRCP 1.6"</item> @@ -76,7 +76,7 @@ <item msgid="1963366694959681026">"avrcp16"</item> </string-array> <string-array name="bluetooth_map_versions"> - <item msgid="8786402640610987099">"MAP 1.2 (domyślny)"</item> + <item msgid="8786402640610987099">"MAP 1.2 (domyślnie)"</item> <item msgid="6817922176194686449">"MAP 1.3"</item> <item msgid="3423518690032737851">"MAP 1.4"</item> </string-array> @@ -86,7 +86,7 @@ <item msgid="8147982633566548515">"map14"</item> </string-array> <string-array name="bluetooth_a2dp_codec_titles"> - <item msgid="2494959071796102843">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="2494959071796102843">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="4055460186095649420">"SBC"</item> <item msgid="720249083677397051">"AAC"</item> <item msgid="1049450003868150455">"Audio <xliff:g id="QUALCOMM">Qualcomm®</xliff:g> <xliff:g id="APTX">aptX™</xliff:g>"</item> @@ -94,7 +94,7 @@ <item msgid="3825367753087348007">"LDAC"</item> </string-array> <string-array name="bluetooth_a2dp_codec_summaries"> - <item msgid="8868109554557331312">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="8868109554557331312">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="9024885861221697796">"SBC"</item> <item msgid="4688890470703790013">"AAC"</item> <item msgid="8627333814413492563">"Audio <xliff:g id="QUALCOMM">Qualcomm®</xliff:g> <xliff:g id="APTX">aptX™</xliff:g>"</item> @@ -102,38 +102,38 @@ <item msgid="2553206901068987657">"LDAC"</item> </string-array> <string-array name="bluetooth_a2dp_codec_sample_rate_titles"> - <item msgid="926809261293414607">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="926809261293414607">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="8003118270854840095">"44,1 kHz"</item> <item msgid="3208896645474529394">"48,0 kHz"</item> <item msgid="8420261949134022577">"88,2 kHz"</item> <item msgid="8887519571067543785">"96,0 kHz"</item> </string-array> <string-array name="bluetooth_a2dp_codec_sample_rate_summaries"> - <item msgid="2284090879080331090">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="2284090879080331090">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="1872276250541651186">"44,1 kHz"</item> <item msgid="8736780630001704004">"48,0 kHz"</item> <item msgid="7698585706868856888">"88,2 kHz"</item> <item msgid="8946330945963372966">"96,0 kHz"</item> </string-array> <string-array name="bluetooth_a2dp_codec_bits_per_sample_titles"> - <item msgid="2574107108483219051">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="2574107108483219051">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="4671992321419011165">"16 bitów/próbkę"</item> <item msgid="1933898806184763940">"24 bity/próbkę"</item> <item msgid="1212577207279552119">"32 bity/próbkę"</item> </string-array> <string-array name="bluetooth_a2dp_codec_bits_per_sample_summaries"> - <item msgid="9196208128729063711">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="9196208128729063711">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="1084497364516370912">"16 bitów/próbkę"</item> <item msgid="2077889391457961734">"24 bity/próbkę"</item> <item msgid="3836844909491316925">"32 bity/próbkę"</item> </string-array> <string-array name="bluetooth_a2dp_codec_channel_mode_titles"> - <item msgid="3014194562841654656">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="3014194562841654656">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="5982952342181788248">"Mono"</item> <item msgid="927546067692441494">"Stereo"</item> </string-array> <string-array name="bluetooth_a2dp_codec_channel_mode_summaries"> - <item msgid="1997302811102880485">"Użyj wyboru systemu (domyślnie)"</item> + <item msgid="1997302811102880485">"Używaj wyboru systemu (domyślnie)"</item> <item msgid="8005696114958453588">"Mono"</item> <item msgid="1333279807604675720">"Stereo"</item> </string-array> diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml index e3703a2f74f6..d700e5506139 100644 --- a/packages/SettingsLib/res/values-pl/strings.xml +++ b/packages/SettingsLib/res/values-pl/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Dźwięk HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Dźwięk HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Aparaty słuchowe"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Połączono z aparatami słuchowymi"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Połączono z LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Połączono z funkcją audio multimediów"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Połączono z funkcją audio telefonu"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Połączono z serwerem transferu plików"</string> @@ -383,7 +381,7 @@ <string name="debug_layout_summary" msgid="8825829038287321978">"Pokazuj granice przycięcia, marginesy itd."</string> <string name="force_rtl_layout_all_locales" msgid="8690762598501599796">"Układ od prawej do lewej"</string> <string name="force_rtl_layout_all_locales_summary" msgid="6663016859517239880">"Wymuszaj układ ekranu od prawej do lewej dla wszystkich języków"</string> - <string name="window_blurs" msgid="6831008984828425106">"Zezwól na rozmycie na poziomie okna"</string> + <string name="window_blurs" msgid="6831008984828425106">"Zezwalaj na rozmycie na poziomie okna"</string> <string name="force_msaa" msgid="4081288296137775550">"Wymuszaj 4x MSAA"</string> <string name="force_msaa_summary" msgid="9070437493586769500">"Włączaj 4x MSAA w aplikacjach OpenGL ES 2.0"</string> <string name="show_non_rect_clip" msgid="7499758654867881817">"Debuguj operacje przycinania nieprostokątnego"</string> diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml index 6ca36770cd54..a3af30469533 100644 --- a/packages/SettingsLib/res/values-pt-rPT/strings.xml +++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Áudio HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Áudio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Aparelhos auditivos"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Ligado a aparelhos auditivos"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Ligado a LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Ligado ao áudio de multimédia"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Ligado ao áudio do telefone"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Ligado ao servidor de transferência de ficheiros"</string> diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml index 79f63ebe8277..748a93f7d9e4 100644 --- a/packages/SettingsLib/res/values-si/strings.xml +++ b/packages/SettingsLib/res/values-si/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD ශ්රව්යය: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD ශ්රව්යය"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"ශ්රවණාධාරක"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE ශ්රව්ය"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"ශ්රවණාධාරක වෙත සම්බන්ධ කළා"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE ශ්රව්ය වෙත සම්බන්ධ විය"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"මාධ්ය ශ්රව්යට සම්බන්ධ විය"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"දුරකතනයේ ශ්රව්යට සම්බන්ධ විය"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"ගොනු හුවමාරු සේවාදායකය සමග සම්බන්ධ විය"</string> diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml index 4fed825aa361..647c2e19a919 100644 --- a/packages/SettingsLib/res/values-sq/strings.xml +++ b/packages/SettingsLib/res/values-sq/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Audio HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Audio HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Aparatet e dëgjimit"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"Audioja LE"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Lidhur me aparatet e dëgjimit"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"U lidh me audion LE"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"U lidh me audion e medias"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"U lidh me audion e telefonit"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"U lidh me serverin e transferimit të skedarëve"</string> diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml index 50de46ebfb09..ea284d537220 100644 --- a/packages/SettingsLib/res/values-sv/strings.xml +++ b/packages/SettingsLib/res/values-sv/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD-ljud: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD-ljud"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Hörapparater"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Ansluten till hörapparater"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Ansluten till LE audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Ansluten till medialjud"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Ansluten till telefonens ljud"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Ansluten till filöverföringsserver"</string> diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml index 613746a51675..50ca8d92730d 100644 --- a/packages/SettingsLib/res/values-sw/strings.xml +++ b/packages/SettingsLib/res/values-sw/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"Sauti ya HD: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"Sauti ya HD"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Vifaa vya Kusaidia Kusikia"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Imeunganishwa kwenye Vifaa vya Kusaidia Kusikia"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Imeunganishwa kwenye LE audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Imeunganishwa kwenye sikika ya njia ya mawasiliano"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Imeunganishwa kwenye sauti ya simu"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Imeunganishwa kwenye seva ya kuhamisha faili"</string> @@ -373,7 +371,7 @@ <string name="show_hw_layers_updates" msgid="5268370750002509767">"Onyesha masasisho ya safu za maunzi"</string> <string name="show_hw_layers_updates_summary" msgid="5850955890493054618">"Angaza kijani safu za maunzi zinaposasisha"</string> <string name="debug_hw_overdraw" msgid="8944851091008756796">"Tatua uondoaji wa GPU"</string> - <string name="disable_overlays" msgid="4206590799671557143">"Lemaza miekeleo ya HW"</string> + <string name="disable_overlays" msgid="4206590799671557143">"Zima miekeleo ya HW"</string> <string name="disable_overlays_summary" msgid="1954852414363338166">"Daima tumia GPU kwa mchanganyiko wa skrini"</string> <string name="simulate_color_space" msgid="1206503300335835151">"Kuiga nafasi ya rangi"</string> <string name="enable_opengl_traces_title" msgid="4638773318659125196">"Wezesha ufuatiliaji wa OpenGL"</string> diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml index 30c45620b582..da0054ba8b5d 100644 --- a/packages/SettingsLib/res/values-te/strings.xml +++ b/packages/SettingsLib/res/values-te/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD ఆడియో: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD ఆడియో"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"వినికిడి మద్దతు ఉపకరణాలు"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"Le ఆడియో"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"వినికిడి మద్దతు ఉపకరణాలకు కనెక్ట్ చేయబడింది"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE ఆడియోకు కనెక్ట్ చేయబడింది"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"మీడియా ఆడియోకు కనెక్ట్ చేయబడింది"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"ఫోన్ ఆడియోకు కనెక్ట్ చేయబడింది"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"ఫైల్ బదిలీ సర్వర్కు కనెక్ట్ చేయబడింది"</string> diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml index 7dae3a641b80..9872bec1bc1f 100644 --- a/packages/SettingsLib/res/values-tl/strings.xml +++ b/packages/SettingsLib/res/values-tl/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD audio: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD audio"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Mga Hearing Aid"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Nakakonekta sa Mga Hearing Aid"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Nakakonekta sa LE audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Konektado sa media audio"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Nakakonekta sa audio ng telepono"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Nakakonekta sa server sa paglilipat ng file"</string> diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml index 18e3b99cbfff..ca4ccbd32df6 100644 --- a/packages/SettingsLib/res/values-tr/strings.xml +++ b/packages/SettingsLib/res/values-tr/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD ses: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD ses"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"İşitme Cihazları"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"İşitme Cihazlarına Bağlandı"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE Audio\'ya bağlandı"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Medya sesine bağlanıldı"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Telefon sesine bağlandı"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Dosya aktarım sunucusuna bağlandı"</string> diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml index 732586bdb198..b9599b79d3fa 100644 --- a/packages/SettingsLib/res/values-uk/strings.xml +++ b/packages/SettingsLib/res/values-uk/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD-аудіо: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD-аудіо"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"Слухові апарати"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE Audio"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"Підключено до слухових апаратів"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"Підключено до LE Audio"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"Підключено до аудіоджерела"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"Підключено до звуку телеф."</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"Підключ. до сервера передачі файлів"</string> diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml index eb25d1b604af..c67c8e74575e 100644 --- a/packages/SettingsLib/res/values-ur/strings.xml +++ b/packages/SettingsLib/res/values-ur/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD آڈیو: <xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD آڈیو"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"سماعتی آلات"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE آڈیو"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"سماعتی آلات سے منسلک ہے"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"LE آڈیو سے منسلک ہے"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"میڈیا آڈیو سے مربوط"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"فون آڈیو سے مربوط"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"فائل منتقلی سرور سے مربوط ہو گیا ہے"</string> diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml index b70eff3c52ad..cca21edcf42c 100644 --- a/packages/SettingsLib/res/values-zh-rCN/strings.xml +++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml @@ -125,11 +125,9 @@ <string name="bluetooth_profile_a2dp_high_quality" msgid="4739440941324792775">"HD 音频:<xliff:g id="CODEC_NAME">%1$s</xliff:g>"</string> <string name="bluetooth_profile_a2dp_high_quality_unknown_codec" msgid="2477639096903834374">"HD 音频"</string> <string name="bluetooth_profile_hearing_aid" msgid="58154575573984914">"助听器"</string> - <!-- no translation found for bluetooth_profile_le_audio (3237854988278539061) --> - <skip /> + <string name="bluetooth_profile_le_audio" msgid="3237854988278539061">"LE 音频"</string> <string name="bluetooth_hearing_aid_profile_summary_connected" msgid="8191273236809964030">"已连接到助听器"</string> - <!-- no translation found for bluetooth_le_audio_profile_summary_connected (6916226974453480650) --> - <skip /> + <string name="bluetooth_le_audio_profile_summary_connected" msgid="6916226974453480650">"已连接到 LE 音频"</string> <string name="bluetooth_a2dp_profile_summary_connected" msgid="7422607970115444153">"已连接到媒体音频"</string> <string name="bluetooth_headset_profile_summary_connected" msgid="2420981566026949688">"已连接到手机音频"</string> <string name="bluetooth_opp_profile_summary_connected" msgid="2393521801478157362">"已连接到文件传输服务器"</string> diff --git a/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java b/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java index e8cbab8197b2..a040e28169e8 100644 --- a/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java +++ b/packages/SettingsLib/src/com/android/settingslib/media/MediaManager.java @@ -32,7 +32,7 @@ public abstract class MediaManager { private static final String TAG = "MediaManager"; protected final Collection<MediaDeviceCallback> mCallbacks = new CopyOnWriteArrayList<>(); - protected final List<MediaDevice> mMediaDevices = new ArrayList<>(); + protected final List<MediaDevice> mMediaDevices = new CopyOnWriteArrayList<>(); protected Context mContext; protected Notification mNotification; diff --git a/packages/SimAppDialog/res/values-en-rCA/strings.xml b/packages/SimAppDialog/res/values-en-rCA/strings.xml index 6236a8f64850..1ddbaf908d61 100644 --- a/packages/SimAppDialog/res/values-en-rCA/strings.xml +++ b/packages/SimAppDialog/res/values-en-rCA/strings.xml @@ -20,7 +20,7 @@ <string name="app_name" msgid="8898068901680117589">"Sim app dialogue"</string> <string name="install_carrier_app_title" msgid="334729104862562585">"Activate mobile service"</string> <string name="install_carrier_app_description" msgid="4014303558674923797">"To get your new SIM working properly, you\'ll need to install the <xliff:g id="ID_1">%1$s</xliff:g> app"</string> - <string name="install_carrier_app_description_default" msgid="7356830245205847840">"To get your new SIM working properly, you\'ll need to install the operator app"</string> + <string name="install_carrier_app_description_default" msgid="7356830245205847840">"To get your new SIM working properly, you\'ll need to install the carrier app"</string> <string name="install_carrier_app_defer_action" msgid="2558576736886876209">"Not now"</string> <string name="install_carrier_app_download_action" msgid="7859229305958538064">"Download app"</string> </resources> diff --git a/packages/SystemUI/res-keyguard/values-ca/strings.xml b/packages/SystemUI/res-keyguard/values-ca/strings.xml index eba003fd6bd1..b1f5a3f9206f 100644 --- a/packages/SystemUI/res-keyguard/values-ca/strings.xml +++ b/packages/SystemUI/res-keyguard/values-ca/strings.xml @@ -84,7 +84,7 @@ <string name="kg_prompt_reason_device_admin" msgid="6961159596224055685">"L\'administrador ha bloquejat el dispositiu"</string> <string name="kg_prompt_reason_user_request" msgid="6015774877733717904">"El dispositiu s\'ha bloquejat manualment"</string> <string name="kg_face_not_recognized" msgid="7903950626744419160">"No s\'ha reconegut"</string> - <string name="kg_face_sensor_privacy_enabled" msgid="939511161763558512">"Per utilitzar Desbloqueig facial, activa l\'accés a la càmera a Configuració"</string> + <string name="kg_face_sensor_privacy_enabled" msgid="939511161763558512">"Desbloqueig facial necessita accés a la càmera"</string> <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Introdueix el PIN de la SIM. Et queda # intent; si no l\'encertes, contacta amb l\'operador per desbloquejar el dispositiu.}other{Introdueix el PIN de la SIM. Et queden # intents.}}"</string> <string name="kg_password_default_puk_message" msgid="1025139786449741950">"{count,plural, =1{La targeta SIM s\'ha desactivat. Introdueix el codi PUK per continuar. Et queda # intent; si no l\'encertes, la SIM no es podrà tornar a fer servir. Contacta amb l\'operador per obtenir informació.}other{La targeta SIM s\'ha desactivat. Introdueix el codi PUK per continuar. Et queden # intents; si no l\'encertes, la SIM no es podrà tornar a fer servir. Contacta amb l\'operador per obtenir informació.}}"</string> <string name="clock_title_default" msgid="6342735240617459864">"Predeterminada"</string> diff --git a/packages/SystemUI/res-keyguard/values-en-rCA/strings.xml b/packages/SystemUI/res-keyguard/values-en-rCA/strings.xml index 05039d8a363b..9b4df35f1754 100644 --- a/packages/SystemUI/res-keyguard/values-en-rCA/strings.xml +++ b/packages/SystemUI/res-keyguard/values-en-rCA/strings.xml @@ -55,10 +55,10 @@ <string name="kg_wrong_pin" msgid="4160978845968732624">"Wrong PIN"</string> <string name="kg_too_many_failed_attempts_countdown" msgid="2038195171919795529">"{count,plural, =1{Try again in # second.}other{Try again in # seconds.}}"</string> <string name="kg_sim_pin_instructions" msgid="1942424305184242951">"Enter SIM PIN."</string> - <string name="kg_sim_pin_instructions_multi" msgid="3639863309953109649">"Enter SIM PIN for \'<xliff:g id="CARRIER">%1$s</xliff:g>\'."</string> + <string name="kg_sim_pin_instructions_multi" msgid="3639863309953109649">"Enter SIM PIN for \"<xliff:g id="CARRIER">%1$s</xliff:g>\"."</string> <string name="kg_sim_lock_esim_instructions" msgid="5577169988158738030">"<xliff:g id="PREVIOUS_MSG">%1$s</xliff:g> Disable eSIM to use device without mobile service."</string> - <string name="kg_puk_enter_puk_hint" msgid="3005288372875367017">"SIM is now disabled. Enter PUK code to continue. Contact operator for details."</string> - <string name="kg_puk_enter_puk_hint_multi" msgid="4876780689904862943">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" is now disabled. Enter PUK code to continue. Contact operator for details."</string> + <string name="kg_puk_enter_puk_hint" msgid="3005288372875367017">"SIM is now disabled. Enter PUK code to continue. Contact carrier for details."</string> + <string name="kg_puk_enter_puk_hint_multi" msgid="4876780689904862943">"SIM \"<xliff:g id="CARRIER">%1$s</xliff:g>\" is now disabled. Enter PUK code to continue. Contact carrier for details."</string> <string name="kg_puk_enter_pin_hint" msgid="6028432138916150399">"Enter desired PIN code"</string> <string name="kg_enter_confirm_pin_hint" msgid="4261064020391799132">"Confirm desired PIN code"</string> <string name="kg_sim_unlock_progress_dialog_message" msgid="4251352015304070326">"Unlocking SIM card…"</string> @@ -67,9 +67,9 @@ <string name="kg_too_many_failed_pin_attempts_dialog_message" msgid="544687656831558971">"You have incorrectly typed your PIN <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string> <string name="kg_too_many_failed_password_attempts_dialog_message" msgid="190984061975729494">"You have incorrectly typed your password <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string> <string name="kg_too_many_failed_pattern_attempts_dialog_message" msgid="4252405904570284368">"You have incorrectly drawn your unlock pattern <xliff:g id="NUMBER_0">%1$d</xliff:g> times. \n\nTry again in <xliff:g id="NUMBER_1">%2$d</xliff:g> seconds."</string> - <string name="kg_password_wrong_pin_code_pukked" msgid="8047350661459040581">"Incorrect SIM PIN code; you must now contact your operator to unlock your device."</string> - <string name="kg_password_wrong_pin_code" msgid="5629415765976820357">"{count,plural, =1{Incorrect SIM PIN code; you have # remaining attempt before you must contact your operator to unlock your device.}other{Incorrect SIM PIN code; you have # remaining attempts. }}"</string> - <string name="kg_password_wrong_puk_code_dead" msgid="3698285357028468617">"SIM is unusable. Contact your operator."</string> + <string name="kg_password_wrong_pin_code_pukked" msgid="8047350661459040581">"Incorrect SIM PIN code you must now contact your carrier to unlock your device."</string> + <string name="kg_password_wrong_pin_code" msgid="5629415765976820357">"{count,plural, =1{Incorrect SIM PIN code, you have # remaining attempt before you must contact your carrier to unlock your device.}other{Incorrect SIM PIN code, you have # remaining attempts. }}"</string> + <string name="kg_password_wrong_puk_code_dead" msgid="3698285357028468617">"SIM is unusable. Contact your carrier."</string> <string name="kg_password_wrong_puk_code" msgid="6820515467645087827">"{count,plural, =1{Incorrect SIM PUK code; you have # remaining attempt before SIM becomes permanently unusable.}other{Incorrect SIM PUK code, you have # remaining attempts before SIM becomes permanently unusable.}}"</string> <string name="kg_password_pin_failed" msgid="5136259126330604009">"SIM PIN operation failed!"</string> <string name="kg_password_puk_failed" msgid="6778867411556937118">"SIM PUK operation failed!"</string> @@ -85,8 +85,8 @@ <string name="kg_prompt_reason_user_request" msgid="6015774877733717904">"Device was locked manually"</string> <string name="kg_face_not_recognized" msgid="7903950626744419160">"Not recognised"</string> <string name="kg_face_sensor_privacy_enabled" msgid="939511161763558512">"To use Face Unlock, turn on camera access in Settings"</string> - <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Enter SIM PIN. You have # remaining attempt before you must contact your operator to unlock your device.}other{Enter SIM PIN. You have # remaining attempts.}}"</string> - <string name="kg_password_default_puk_message" msgid="1025139786449741950">"{count,plural, =1{SIM is now disabled. Enter PUK code to continue. You have # remaining attempt before SIM becomes permanently unusable. Contact operator for details.}other{SIM is now disabled. Enter PUK code to continue. You have # remaining attempts before SIM becomes permanently unusable. Contact operator for details.}}"</string> + <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Enter SIM PIN. You have # remaining attempt before you must contact your carrier to unlock your device.}other{Enter SIM PIN. You have # remaining attempts.}}"</string> + <string name="kg_password_default_puk_message" msgid="1025139786449741950">"{count,plural, =1{SIM is now disabled. Enter PUK code to continue. You have # remaining attempt before SIM becomes permanently unusable. Contact carrier for details.}other{SIM is now disabled. Enter PUK code to continue. You have # remaining attempts before SIM becomes permanently unusable. Contact carrier for details.}}"</string> <string name="clock_title_default" msgid="6342735240617459864">"Default"</string> <string name="clock_title_bubble" msgid="2204559396790593213">"Bubble"</string> <string name="clock_title_analog" msgid="8409262532900918273">"Analogue"</string> diff --git a/packages/SystemUI/res-keyguard/values-eu/strings.xml b/packages/SystemUI/res-keyguard/values-eu/strings.xml index 0932e93003f1..bf9491572cf8 100644 --- a/packages/SystemUI/res-keyguard/values-eu/strings.xml +++ b/packages/SystemUI/res-keyguard/values-eu/strings.xml @@ -84,7 +84,7 @@ <string name="kg_prompt_reason_device_admin" msgid="6961159596224055685">"Administratzaileak blokeatu egin du gailua"</string> <string name="kg_prompt_reason_user_request" msgid="6015774877733717904">"Eskuz blokeatu da gailua"</string> <string name="kg_face_not_recognized" msgid="7903950626744419160">"Ez da ezagutu"</string> - <string name="kg_face_sensor_privacy_enabled" msgid="939511161763558512">"Aurpegi bidez desblokeatzeko eginbidea erabiltzeko, eman kamera atzitzeko baimena ezarpenetan"</string> + <string name="kg_face_sensor_privacy_enabled" msgid="939511161763558512">"Aurpegi bidezko desblokeoak kamera atzitzeko baimena behar du"</string> <string name="kg_password_default_pin_message" msgid="1434544655827987873">"{count,plural, =1{Idatzi SIMaren PINa. # saiakera geratzen zaizu gailua desblokeatzeko operadorearekin harremanetan jarri behar izan aurretik.}other{Idatzi SIMaren PINa. # saiakera gelditzen zaizkizu.}}"</string> <string name="kg_password_default_puk_message" msgid="1025139786449741950">"{count,plural, =1{Orain, SIMa desgaituta dago. Aurrera egiteko, idatzi PUK kodea. # saiakera geratzen zaizu SIMa betiko ez-erabilgarri geratu aurretik. Xehetasunak lortzeko, jarri operadorearekin harremanetan.}other{Orain, SIMa desgaituta dago. Aurrera egiteko, idatzi PUK kodea. # saiakera geratzen zaizkizu SIMa betiko ez-erabilgarri geratu aurretik. Xehetasunak lortzeko, jarri operadorearekin harremanetan.}}"</string> <string name="clock_title_default" msgid="6342735240617459864">"Lehenetsia"</string> diff --git a/packages/SystemUI/res-keyguard/values-te/strings.xml b/packages/SystemUI/res-keyguard/values-te/strings.xml index cecc645bcd8a..b6ae96d1dea7 100644 --- a/packages/SystemUI/res-keyguard/values-te/strings.xml +++ b/packages/SystemUI/res-keyguard/values-te/strings.xml @@ -22,7 +22,7 @@ xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2"> <string name="keyguard_enter_your_pin" msgid="5429932527814874032">"మీ పిన్ని నమోదు చేయండి"</string> <string name="keyguard_enter_your_pattern" msgid="351503370332324745">"మీ నమూనాను నమోదు చేయండి"</string> - <string name="keyguard_enter_your_password" msgid="7225626204122735501">"మీ పాస్వర్డ్ను నమోదు చేయండి"</string> + <string name="keyguard_enter_your_password" msgid="7225626204122735501">"మీ పాస్వర్డ్ను ఎంటర్ చేయండి"</string> <string name="keyguard_sim_error_message_short" msgid="633630844240494070">"చెల్లని కార్డ్."</string> <string name="keyguard_charged" msgid="5478247181205188995">"ఛార్జ్ చేయబడింది"</string> <string name="keyguard_plugged_in_wireless" msgid="2537874724955057383">"<xliff:g id="PERCENTAGE">%s</xliff:g> • వైర్ లేకుండా ఛార్జ్ అవుతోంది"</string> diff --git a/packages/SystemUI/res/layout/media_ttt_chip.xml b/packages/SystemUI/res/layout/media_ttt_chip.xml index 4d24140abbf4..d88680669fe0 100644 --- a/packages/SystemUI/res/layout/media_ttt_chip.xml +++ b/packages/SystemUI/res/layout/media_ttt_chip.xml @@ -31,6 +31,8 @@ android:padding="@dimen/media_ttt_chip_outer_padding" android:background="@drawable/media_ttt_chip_background" android:layout_marginTop="20dp" + android:layout_marginStart="@dimen/notification_side_paddings" + android:layout_marginEnd="@dimen/notification_side_paddings" android:clipToPadding="false" android:gravity="center_vertical" android:alpha="0.0" @@ -46,8 +48,9 @@ <TextView android:id="@+id/text" - android:layout_width="wrap_content" + android:layout_width="0dp" android:layout_height="wrap_content" + android:layout_weight="1" android:textSize="@dimen/media_ttt_text_size" android:textColor="?android:attr/textColorPrimary" android:alpha="0.0" diff --git a/packages/SystemUI/res/values-af/strings.xml b/packages/SystemUI/res/values-af/strings.xml index 9bb3db9015c7..5b2edbc060bb 100644 --- a/packages/SystemUI/res/values-af/strings.xml +++ b/packages/SystemUI/res/values-af/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Kamera"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Foon"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Stembystand"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Beursie"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR-kodeskandeerder"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Ontsluit"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Toestel is gesluit"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Wys demonstrasiemodus"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Wekker"</string> - <string name="wallet_title" msgid="5369767670735827105">"Beursie"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Stel op om vinniger, veiliger aankope met jou foon te doen"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Wys alles"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Tik om oop te maak"</string> diff --git a/packages/SystemUI/res/values-af/strings_tv.xml b/packages/SystemUI/res/values-af/strings_tv.xml index 05f0d61877f5..4fec3b2a054f 100644 --- a/packages/SystemUI/res/values-af/strings_tv.xml +++ b/packages/SystemUI/res/values-af/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofoon het opname gestop"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera het opname gestop"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera en mikrofoon het opname gestop"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Skermopname het begin"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Skermopname het gestop"</string> </resources> diff --git a/packages/SystemUI/res/values-am/strings_tv.xml b/packages/SystemUI/res/values-am/strings_tv.xml index 93bb84954a25..a89d79be75b8 100644 --- a/packages/SystemUI/res/values-am/strings_tv.xml +++ b/packages/SystemUI/res/values-am/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"ማይክሮፎን መቅዳት አቁሟል"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ካሜራ መቅረጽ አቁሟል"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ካሜራ መቅረጽ እና ማይክሮፎን መቅዳት አቁመዋል"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"የማያ ገጽ ቀረጻ ተጀምሯል"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"የማያ ገጽ ቀረጻ ቆሟል"</string> </resources> diff --git a/packages/SystemUI/res/values-ar/strings.xml b/packages/SystemUI/res/values-ar/strings.xml index 4627d3536ba7..3138bf966427 100644 --- a/packages/SystemUI/res/values-ar/strings.xml +++ b/packages/SystemUI/res/values-ar/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"الكاميرا"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"الهاتف"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"المساعد الصوتي"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"المحفظة"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"محفظة"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"الماسح الضوئي لرمز الاستجابة السريعة"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"فتح القفل"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"الجهاز مُقفل."</string> @@ -403,8 +403,8 @@ <string name="monitoring_description_management_network_logging" msgid="216983105036994771">"شغَّل المشرف ميزة تسجيل بيانات الشبكة، والتي يتم من خلالها مراقبة حركة البيانات على جهازك."</string> <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"شغَّل المشرف ميزة تسجيل بيانات الشبكة، والتي يتم من خلالها مراقبة حركة البيانات في ملفك الشخصي للعمل ولكن لا تتم مراقبتها في ملفك الشخصي."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"هذا الجهاز متّصل بالإنترنت من خلال <xliff:g id="VPN_APP">%1$s</xliff:g>. تظهر أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية وبيانات التصفُّح، لمشرف تكنولوجيا المعلومات."</string> - <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"هذا الجهاز متّصل بالإنترنت من خلال <xliff:g id="VPN_APP_0">%1$s</xliff:g> و<xliff:g id="VPN_APP_1">%2$s</xliff:g>. تظهر أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية وبيانات التصفُّح، لمشرف تكنولوجيا المعلومات."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"تطبيقات العمل الخاصة بك متّصلة بالإنترنت من خلال <xliff:g id="VPN_APP">%1$s</xliff:g>. تظهر أنشطة الشبكة في تطبيقات العمل، بما في ذلك الرسائل الإلكترونية وبيانات التصفُّح، لمشرف تكنولوجيا المعلومات ومزوّد خدمة الشبكة الافتراضية الخاصة (VPN)."</string> + <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"هذا الجهاز متّصل بالإنترنت من خلال <xliff:g id="VPN_APP_0">%1$s</xliff:g> و<xliff:g id="VPN_APP_1">%2$s</xliff:g>. يمكن لمشرف تكنولوجيا المعلومات رؤية أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية وبيانات التصفُّح."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"تطبيقات العمل الخاصة بك متّصلة بالإنترنت من خلال <xliff:g id="VPN_APP">%1$s</xliff:g>. يمكن لمشرف تكنولوجيا المعلومات ومزوّد خدمة الشبكة الافتراضية الخاصة (VPN) رؤية أنشطة الشبكة في تطبيقات العمل، بما في ذلك الرسائل الإلكترونية وبيانات التصفُّح."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"تطبيقاتك الشخصية متّصلة بالإنترنت من خلال <xliff:g id="VPN_APP">%1$s</xliff:g>. تظهر أنشطة الشبكة، بما في ذلك الرسائل الإلكترونية وبيانات التصفُّح، لمزوّد خدمة الشبكة الافتراضية الخاصة (VPN)."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"فتح إعدادات الشبكة الافتراضية الخاصة (VPN)"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"عرض الوضع التجريبي"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"إيثرنت"</string> <string name="status_bar_alarm" msgid="87160847643623352">"المنبّه"</string> - <string name="wallet_title" msgid="5369767670735827105">"المحفظة"</string> + <string name="wallet_title" msgid="5369767670735827105">"محفظة"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"يمكنك إعداد طريقة دفع لإجراء عمليات شراء بسرعة وأمان أكبر باستخدام هاتفك."</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"عرض الكل"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"انقر لفتح قفل الجهاز."</string> diff --git a/packages/SystemUI/res/values-ar/strings_tv.xml b/packages/SystemUI/res/values-ar/strings_tv.xml index 0eb03f53fde1..0a960691f5ce 100644 --- a/packages/SystemUI/res/values-ar/strings_tv.xml +++ b/packages/SystemUI/res/values-ar/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"توقف التسجيل بالميكرفون."</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"توقف التسجيل بالكاميرا."</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"توقف التسجيل بالكاميرا والميكروفون."</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"بدأ تسجيل الشاشة."</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"توقَّف تسجيل الشاشة."</string> </resources> diff --git a/packages/SystemUI/res/values-as/strings_tv.xml b/packages/SystemUI/res/values-as/strings_tv.xml index 782c65c05b21..ec37d5310ad6 100644 --- a/packages/SystemUI/res/values-as/strings_tv.xml +++ b/packages/SystemUI/res/values-as/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"মাইক্ৰ’ফ’নটোৱে ৰেক’ৰ্ড কৰাটো বন্ধ কৰিছে"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"কেমেৰাটোৱে ৰেক’ৰ্ড কৰাটো বন্ধ কৰিছে"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"কেমেৰা আৰু মাইক্ৰ’ফ’নটোৱে ৰেক’ৰ্ড কৰাটো বন্ধ কৰিছে"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"স্ক্ৰীন ৰেকৰ্ডিং আৰম্ভ কৰা হৈছে"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"স্ক্ৰীন ৰেকৰ্ডিং বন্ধ হৈছে"</string> </resources> diff --git a/packages/SystemUI/res/values-az/strings_tv.xml b/packages/SystemUI/res/values-az/strings_tv.xml index dfa61d1a18a7..055b2fa9469f 100644 --- a/packages/SystemUI/res/values-az/strings_tv.xml +++ b/packages/SystemUI/res/values-az/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon yazmağı dayandırıb"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera yazmağı dayandırıb"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera və mikrofon yazmağı dayandırıb"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Ekranı videoya çəkməyə başlandı"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Ekranı videoya çəkməyi dayandırdınız"</string> </resources> diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings.xml b/packages/SystemUI/res/values-b+sr+Latn/strings.xml index a0dc311e9181..2b6bd9a8c807 100644 --- a/packages/SystemUI/res/values-b+sr+Latn/strings.xml +++ b/packages/SystemUI/res/values-b+sr+Latn/strings.xml @@ -94,7 +94,7 @@ <string name="screenrecord_channel_description" msgid="4147077128486138351">"Obaveštenje o sesiji snimanja ekrana je aktivno"</string> <string name="screenrecord_start_label" msgid="1750350278888217473">"Želite da započnete snimanje?"</string> <string name="screenrecord_description" msgid="1123231719680353736">"Tokom snimanja Android sistem može da snimi osetljive informacije koje su vidljive na ekranu ili koje se puštaju na uređaju. To obuhvata lozinke, informacije o plaćanju, slike, poruke i zvuk."</string> - <string name="screenrecord_audio_label" msgid="6183558856175159629">"Snimi zvuk"</string> + <string name="screenrecord_audio_label" msgid="6183558856175159629">"Snimaj zvuk"</string> <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Zvuk uređaja"</string> <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Zvuk sa uređaja, na primer, muzika, pozivi i melodije zvona"</string> <string name="screenrecord_mic_label" msgid="2111264835791332350">"Mikrofon"</string> diff --git a/packages/SystemUI/res/values-b+sr+Latn/strings_tv.xml b/packages/SystemUI/res/values-b+sr+Latn/strings_tv.xml index 12a7b1569ba6..f72890bd5d2c 100644 --- a/packages/SystemUI/res/values-b+sr+Latn/strings_tv.xml +++ b/packages/SystemUI/res/values-b+sr+Latn/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Snimanje mikrofonom je zaustavljeno"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Snimanje kamerom je zaustavljeno"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Snimanje kamerom i mikrofonom je zaustavljeno"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Snimanje ekrana je započeto"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Snimanje ekrana je zaustavljeno"</string> </resources> diff --git a/packages/SystemUI/res/values-be/strings_tv.xml b/packages/SystemUI/res/values-be/strings_tv.xml index 4e28e9d87b40..aee04c2c7689 100644 --- a/packages/SystemUI/res/values-be/strings_tv.xml +++ b/packages/SystemUI/res/values-be/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Запіс з выкарыстаннем мікрафона спынены"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Запіс з выкарыстаннем камеры спынены"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Запіс з выкарыстаннем камеры і мікрафона спынены"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Пачаўся запіс экрана"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Запіс экрана спынены"</string> </resources> diff --git a/packages/SystemUI/res/values-bg/strings_tv.xml b/packages/SystemUI/res/values-bg/strings_tv.xml index f53850809f20..6d578ad5c88b 100644 --- a/packages/SystemUI/res/values-bg/strings_tv.xml +++ b/packages/SystemUI/res/values-bg/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Микрофонът спря да записва"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Камерата спря да записва"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Камерата и микрофонът спряха да записват"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Записването на екрана започна"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Записването на екрана бе спряно"</string> </resources> diff --git a/packages/SystemUI/res/values-bn/strings.xml b/packages/SystemUI/res/values-bn/strings.xml index 46b0693242cd..8a8949182055 100644 --- a/packages/SystemUI/res/values-bn/strings.xml +++ b/packages/SystemUI/res/values-bn/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"ক্যামেরা"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ফোন"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"ভয়েস সহায়তা"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"ওয়ালেট"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR কোড স্ক্যানার"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"আনলক করুন"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"ডিভাইস লক করা আছে"</string> diff --git a/packages/SystemUI/res/values-bn/strings_tv.xml b/packages/SystemUI/res/values-bn/strings_tv.xml index a5b899e56800..dcaefd974879 100644 --- a/packages/SystemUI/res/values-bn/strings_tv.xml +++ b/packages/SystemUI/res/values-bn/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"মাইক্রোফোনে রেকর্ড করা বন্ধ হয়ে গেছে"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ক্যামেরায় রেকর্ড করা বন্ধ হয়ে গেছে"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ক্যামেরা ও মাইক্রোফোনে রেকর্ড করা বন্ধ হয়ে গেছে"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"স্ক্রিন রেকর্ড করা শুরু হয়েছে"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"স্ক্রিন রেকর্ড করা বন্ধ হয়েছে"</string> </resources> diff --git a/packages/SystemUI/res/values-bs/strings.xml b/packages/SystemUI/res/values-bs/strings.xml index b9b1f6977b7f..ad7f10b5657f 100644 --- a/packages/SystemUI/res/values-bs/strings.xml +++ b/packages/SystemUI/res/values-bs/strings.xml @@ -373,7 +373,7 @@ <string name="quick_settings_disclosure_management_monitoring" msgid="8231336875820702180">"Vaša organizacija je vlasnik ovog uređaja i može nadzirati mrežni saobraćaj"</string> <string name="quick_settings_disclosure_named_management_monitoring" msgid="2831423806103479812">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> upravlja ovim uređajem i može nadzirati mrežni saobraćaj"</string> <string name="quick_settings_financed_disclosure_named_management" msgid="2307703784594859524">"Ovaj uređaj pruža <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string> - <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"Ovaj uređaj pripada vašoj organizaciji i povezan je na internet putem aplikacije <xliff:g id="VPN_APP">%1$s</xliff:g>"</string> + <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"Ovaj uređaj pripada vašoj organizaciji i povezan je s internetom putem aplikacije <xliff:g id="VPN_APP">%1$s</xliff:g>"</string> <string name="quick_settings_disclosure_named_management_named_vpn" msgid="2169227918166358741">"Ovaj uređaj pripada organizaciji <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> i povezan je na internet putem aplikacije <xliff:g id="VPN_APP">%2$s</xliff:g>"</string> <string name="quick_settings_disclosure_management" msgid="5515296598440684962">"Ovaj uređaj pripada vašoj organizaciji"</string> <string name="quick_settings_disclosure_named_management" msgid="3476472755775165827">"Ovaj uređaj pripada organizaciji <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g>"</string> @@ -404,10 +404,10 @@ <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Administrator je uključio zapisivanje na mreži, čime se nadzire saobraćaj na vašem radnom profilu, ali ne i na ličnom profilu."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"Uređaj je povezan s internetom putem aplikacije <xliff:g id="VPN_APP">%1$s</xliff:g>. Vaša mrežna aktivnost, uključujući e-poštu i podatke o pregledanju, je vidljiva vašem IT administratoru."</string> <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Uređaj je povezan s internetom putem aplikacija <xliff:g id="VPN_APP_0">%1$s</xliff:g> i <xliff:g id="VPN_APP_1">%2$s</xliff:g>. Vaša mrežna aktivnost, uključujući e-poštu i podatke o pregledanju, je vidljiva vašem IT administratoru."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Vaše poslovne aplikacije su povezane na internet putem aplikacije <xliff:g id="VPN_APP">%1$s</xliff:g>. Vaša mrežna aktivnost u poslovnim aplikacijama, uključujući e-poštu i podatke o pregledanju, je vidljiva vašem IT administratoru i pružaocu VPN usluga."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Vaše poslovne aplikacije su povezane s internetom putem aplikacije <xliff:g id="VPN_APP">%1$s</xliff:g>. Vaša mrežna aktivnost u poslovnim aplikacijama, uključujući e-poštu i podatke o pregledanju, je vidljiva IT administratoru i pružaocu VPN usluga."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Lične aplikacije su povezane s internetom putem aplikacije <xliff:g id="VPN_APP">%1$s</xliff:g>. Vaša mrežna aktivnost, uključujući e-poštu i podatke o pregledanju, je vidljiva vašem pružaocu VPN usluga."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> - <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"Otvorite postavke VPN mreže"</string> + <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"Otvorite postavke VPN-a"</string> <string name="monitoring_description_parental_controls" msgid="8184693528917051626">"Ovim uređajem upravlja tvoj roditelj. Roditelj može vidjeti i upravljati informacijama kao što su aplikacije koje koristiš, lokacija i vrijeme korištenja uređaja."</string> <string name="legacy_vpn_name" msgid="4174223520162559145">"VPN"</string> <string name="keyguard_indication_trust_unlocked" msgid="7395154975733744547">"Pouzdani agent sprečava zaključavanje"</string> diff --git a/packages/SystemUI/res/values-bs/strings_tv.xml b/packages/SystemUI/res/values-bs/strings_tv.xml index 21d11e4998c9..db8c5b3cef65 100644 --- a/packages/SystemUI/res/values-bs/strings_tv.xml +++ b/packages/SystemUI/res/values-bs/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon je prestao snimati"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera je prestala snimati"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera i mikrofon su prestali snimati"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Snimanje ekrana je pokrenuto"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Snimanje ekrana je zaustavljeno"</string> </resources> diff --git a/packages/SystemUI/res/values-ca/strings.xml b/packages/SystemUI/res/values-ca/strings.xml index b19716980885..f7441f34073a 100644 --- a/packages/SystemUI/res/values-ca/strings.xml +++ b/packages/SystemUI/res/values-ca/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Càmera"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Telèfon"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Assistència per veu"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Cartera"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Escàner de codis QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Desbloqueja"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Dispositiu bloquejat"</string> @@ -403,8 +403,8 @@ <string name="monitoring_description_management_network_logging" msgid="216983105036994771">"L\'administrador ha activat el registre de xarxa, que supervisa el trànsit del teu dispositiu."</string> <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"L\'administrador ha activat el registre de xarxa, que monitora el trànsit al teu perfil de treball, però no al personal."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"Aquest dispositiu es connecta a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. El teu administrador de TI pot veure l\'activitat de la teva xarxa, inclosos els correus electrònics i les dades de navegació."</string> - <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Aquest dispositiu es connecta a Internet a través de <xliff:g id="VPN_APP_0">%1$s</xliff:g> i <xliff:g id="VPN_APP_1">%2$s</xliff:g>. El teu administrador de TI pot veure l\'activitat de la teva xarxa, inclosos els correus electrònics i les dades de navegació."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Les aplicacions de treball es connecten a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. El teu administrador de TI i el teu proveïdor de VPN poden veure l\'activitat de la teva xarxa en aplicacions de treball, inclosos els correus electrònics i les dades de navegació."</string> + <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Aquest dispositiu es connecta a Internet a través de <xliff:g id="VPN_APP_0">%1$s</xliff:g> i <xliff:g id="VPN_APP_1">%2$s</xliff:g>. El teu administrador de TI pot veure la teva activitat a la xarxa, inclosos els correus electrònics i les dades de navegació."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Les aplicacions de treball es connecten a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. El teu administrador de TI i el teu proveïdor de VPN poden veure la teva activitat a la xarxa en aplicacions de treball, inclosos els correus electrònics i les dades de navegació."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Les aplicacions personals es connecten a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. El teu proveïdor de VPN pot veure l\'activitat de la teva xarxa, inclosos els correus electrònics i les dades de navegació."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"Obre la configuració de la VPN"</string> diff --git a/packages/SystemUI/res/values-ca/strings_tv.xml b/packages/SystemUI/res/values-ca/strings_tv.xml index d05da81b0fa3..972d38b9ec66 100644 --- a/packages/SystemUI/res/values-ca/strings_tv.xml +++ b/packages/SystemUI/res/values-ca/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"El micròfon ha deixat de gravar"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"La càmera ha deixat de gravar"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"La càmera i el micròfon han deixat de gravar"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"La gravació de la pantalla ha començat"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"La gravació de la pantalla s\'ha aturat"</string> </resources> diff --git a/packages/SystemUI/res/values-cs/strings_tv.xml b/packages/SystemUI/res/values-cs/strings_tv.xml index 325d2e2d1803..ab391f44320c 100644 --- a/packages/SystemUI/res/values-cs/strings_tv.xml +++ b/packages/SystemUI/res/values-cs/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon přestal nahrávat"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera přestala nahrávat"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera a mikrofon přestaly nahrávat"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Zahájeno nahrávání obrazovky"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Záznam obrazovky ukončen"</string> </resources> diff --git a/packages/SystemUI/res/values-da/strings_tv.xml b/packages/SystemUI/res/values-da/strings_tv.xml index be33c6aa0372..66b79649944d 100644 --- a/packages/SystemUI/res/values-da/strings_tv.xml +++ b/packages/SystemUI/res/values-da/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofonen er stoppet med at optage"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kameraet er stoppet med at optage"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kameraet og mikrofonen er stoppet med at optage"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Skærmoptagelsen er startet"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Skærmoptagelsen er stoppet"</string> </resources> diff --git a/packages/SystemUI/res/values-de/strings.xml b/packages/SystemUI/res/values-de/strings.xml index cb9106f56781..169e475ddc49 100644 --- a/packages/SystemUI/res/values-de/strings.xml +++ b/packages/SystemUI/res/values-de/strings.xml @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Demomodus anzeigen"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Weckruf"</string> - <string name="wallet_title" msgid="5369767670735827105">"Geldbörse"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Füge eine Zahlungsmethode hinzu, um noch schneller und sicherer mit deinem Smartphone zu bezahlen"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Alle anzeigen"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Zum Öffnen tippen"</string> diff --git a/packages/SystemUI/res/values-de/strings_tv.xml b/packages/SystemUI/res/values-de/strings_tv.xml index 38dd07d59374..5df9d320faf2 100644 --- a/packages/SystemUI/res/values-de/strings_tv.xml +++ b/packages/SystemUI/res/values-de/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Aufnahme des Mikrofons gestoppt"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Aufnahme der Kamera gestoppt"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Aufnahme von Kamera und Mikrofon gestoppt"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Bildschirmaufzeichnung gestartet"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Bildschirmaufzeichnung beendet"</string> </resources> diff --git a/packages/SystemUI/res/values-el/strings_tv.xml b/packages/SystemUI/res/values-el/strings_tv.xml index 45b57a1d2308..9fb126d4417d 100644 --- a/packages/SystemUI/res/values-el/strings_tv.xml +++ b/packages/SystemUI/res/values-el/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Η εγγραφή από το μικρόφωνο διακόπηκε"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Η εγγραφή από την κάμερα διακόπηκε"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Η εγγραφή από την κάμερα και το μικρόφωνο διακόπηκε"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Η εγγραφή οθόνης ξεκίνησε"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Η εγγραφή οθόνης σταμάτησε"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rAU/strings_tv.xml b/packages/SystemUI/res/values-en-rAU/strings_tv.xml index eecc37264716..e97dbe4bd491 100644 --- a/packages/SystemUI/res/values-en-rAU/strings_tv.xml +++ b/packages/SystemUI/res/values-en-rAU/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Microphone stopped recording"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Camera stopped recording"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Camera and microphone stopped recording"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Screen recording started"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Screen recording stopped"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rCA/strings.xml b/packages/SystemUI/res/values-en-rCA/strings.xml index b469b45dd7ce..0519c96dd306 100644 --- a/packages/SystemUI/res/values-en-rCA/strings.xml +++ b/packages/SystemUI/res/values-en-rCA/strings.xml @@ -77,7 +77,7 @@ <string name="screenshot_failed_to_save_user_locked_text" msgid="6156607948256936920">"Device must be unlocked before screenshot can be saved"</string> <string name="screenshot_failed_to_save_unknown_text" msgid="1506621600548684129">"Try taking screenshot again"</string> <string name="screenshot_failed_to_save_text" msgid="7232739948999195960">"Can\'t save screenshot"</string> - <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Taking screenshots isn\'t allowed by the app or your organisation"</string> + <string name="screenshot_failed_to_capture_text" msgid="7818288545874407451">"Taking screenshots isn\'t allowed by the app or your organization"</string> <string name="screenshot_blocked_by_admin" msgid="5486757604822795797">"Taking screenshots is blocked by your IT admin"</string> <string name="screenshot_edit_label" msgid="8754981973544133050">"Edit"</string> <string name="screenshot_edit_description" msgid="3333092254706788906">"Edit screenshot"</string> @@ -322,7 +322,7 @@ </string-array> <string name="keyguard_retry" msgid="886802522584053523">"Swipe up to try again"</string> <string name="require_unlock_for_nfc" msgid="1305686454823018831">"Unlock to use NFC"</string> - <string name="do_disclosure_generic" msgid="4896482821974707167">"This device belongs to your organisation"</string> + <string name="do_disclosure_generic" msgid="4896482821974707167">"This device belongs to your organization"</string> <string name="do_disclosure_with_name" msgid="2091641464065004091">"This device belongs to <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string> <string name="do_financed_disclosure_with_name" msgid="6723004643314467864">"This device is provided by <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string> <string name="phone_hint" msgid="6682125338461375925">"Swipe from icon for phone"</string> @@ -370,16 +370,16 @@ <string name="media_projection_action_text" msgid="3634906766918186440">"Start now"</string> <string name="empty_shade_text" msgid="8935967157319717412">"No notifications"</string> <string name="quick_settings_disclosure_parental_controls" msgid="2114102871438223600">"This device is managed by your parent"</string> - <string name="quick_settings_disclosure_management_monitoring" msgid="8231336875820702180">"Your organisation owns this device and may monitor network traffic"</string> + <string name="quick_settings_disclosure_management_monitoring" msgid="8231336875820702180">"Your organization owns this device and may monitor network traffic"</string> <string name="quick_settings_disclosure_named_management_monitoring" msgid="2831423806103479812">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> owns this device and may monitor network traffic"</string> <string name="quick_settings_financed_disclosure_named_management" msgid="2307703784594859524">"This device is provided by <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string> - <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"This device belongs to your organisation and is connected to the Internet through <xliff:g id="VPN_APP">%1$s</xliff:g>"</string> + <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"This device belongs to your organization and is connected to the internet through <xliff:g id="VPN_APP">%1$s</xliff:g>"</string> <string name="quick_settings_disclosure_named_management_named_vpn" msgid="2169227918166358741">"This device belongs to <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> and is connected to the Internet through <xliff:g id="VPN_APP">%2$s</xliff:g>"</string> - <string name="quick_settings_disclosure_management" msgid="5515296598440684962">"This device belongs to your organisation"</string> + <string name="quick_settings_disclosure_management" msgid="5515296598440684962">"This device belongs to your organization"</string> <string name="quick_settings_disclosure_named_management" msgid="3476472755775165827">"This device belongs to <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g>"</string> - <string name="quick_settings_disclosure_management_vpns" msgid="929181757984262902">"This device belongs to your organisation and is connected to the Internet through VPNs"</string> + <string name="quick_settings_disclosure_management_vpns" msgid="929181757984262902">"This device belongs to your organization and is connected to the internet through VPNs"</string> <string name="quick_settings_disclosure_named_management_vpns" msgid="3312645578322079185">"This device belongs to <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> and is connected to the Internet through VPNs"</string> - <string name="quick_settings_disclosure_managed_profile_monitoring" msgid="1423899084754272514">"Your organisation may monitor network traffic in your work profile"</string> + <string name="quick_settings_disclosure_managed_profile_monitoring" msgid="1423899084754272514">"Your organization may monitor network traffic in your work profile"</string> <string name="quick_settings_disclosure_named_managed_profile_monitoring" msgid="8321469176706219860">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> may monitor network traffic in your work profile"</string> <string name="quick_settings_disclosure_managed_profile_network_activity" msgid="2636594621387832827">"Work profile network activity is visible to your IT admin"</string> <string name="quick_settings_disclosure_monitoring" msgid="8548019955631378680">"Network may be monitored"</string> @@ -396,9 +396,9 @@ <string name="monitoring_button_view_controls" msgid="8316440345340701117">"View controls"</string> <string name="monitoring_description_named_management" msgid="505833016545056036">"This device belongs to <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g>.\n\nYour IT admin can monitor and manage settings, corporate access, apps, data associated with your device, and your device\'s location information.\n\nFor more information, contact your IT admin."</string> <string name="monitoring_financed_description_named_management" msgid="6108439201399938668">"<xliff:g id="ORGANIZATION_NAME_0">%1$s</xliff:g> may be able to access data associated with this device, manage apps and change this device\'s settings.\n\nIf you have questions, contact <xliff:g id="ORGANIZATION_NAME_1">%2$s</xliff:g>."</string> - <string name="monitoring_description_management" msgid="4308879039175729014">"This device belongs to your organisation.\n\nYour IT admin can monitor and manage settings, corporate access, apps, data associated with your device, and your device\'s location information.\n\nFor more information, contact your IT admin."</string> - <string name="monitoring_description_management_ca_certificate" msgid="7785013130658110130">"Your organisation installed a certificate authority on this device. Your secure network traffic may be monitored or modified."</string> - <string name="monitoring_description_managed_profile_ca_certificate" msgid="7904323416598435647">"Your organisation installed a certificate authority in your work profile. Your secure network traffic may be monitored or modified."</string> + <string name="monitoring_description_management" msgid="4308879039175729014">"This device belongs to your organization.\n\nYour IT admin can monitor and manage settings, corporate access, apps, data associated with your device, and your device\'s location information.\n\nFor more information, contact your IT admin."</string> + <string name="monitoring_description_management_ca_certificate" msgid="7785013130658110130">"Your organization installed a certificate authority on this device. Your secure network traffic may be monitored or modified."</string> + <string name="monitoring_description_managed_profile_ca_certificate" msgid="7904323416598435647">"Your organization installed a certificate authority in your work profile. Your secure network traffic may be monitored or modified."</string> <string name="monitoring_description_ca_certificate" msgid="448923057059097497">"A certificate authority is installed on this device. Your secure network traffic may be monitored or modified."</string> <string name="monitoring_description_management_network_logging" msgid="216983105036994771">"Your admin has turned on network logging, which monitors traffic on your device."</string> <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Your admin has turned on network logging, which monitors traffic in your work profile but not in your personal profile."</string> @@ -709,7 +709,7 @@ <string name="running_foreground_services_msg" msgid="3009459259222695385">"Tap for details on battery and data usage"</string> <string name="mobile_data_disable_title" msgid="5366476131671617790">"Turn off mobile data?"</string> <string name="mobile_data_disable_message" msgid="8604966027899770415">"You won\'t have access to data or the Internet through <xliff:g id="CARRIER">%s</xliff:g>. Internet will only be available via Wi-Fi."</string> - <string name="mobile_data_disable_message_default_carrier" msgid="6496033312431658238">"your operator"</string> + <string name="mobile_data_disable_message_default_carrier" msgid="6496033312431658238">"your carrier"</string> <string name="touch_filtered_warning" msgid="8119511393338714836">"Because an app is obscuring a permission request, Settings can’t verify your response."</string> <string name="slice_permission_title" msgid="3262615140094151017">"Allow <xliff:g id="APP_0">%1$s</xliff:g> to show <xliff:g id="APP_2">%2$s</xliff:g> slices?"</string> <string name="slice_permission_text_1" msgid="6675965177075443714">"– It can read information from <xliff:g id="APP">%1$s</xliff:g>"</string> diff --git a/packages/SystemUI/res/values-en-rCA/strings_tv.xml b/packages/SystemUI/res/values-en-rCA/strings_tv.xml index eecc37264716..e97dbe4bd491 100644 --- a/packages/SystemUI/res/values-en-rCA/strings_tv.xml +++ b/packages/SystemUI/res/values-en-rCA/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Microphone stopped recording"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Camera stopped recording"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Camera and microphone stopped recording"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Screen recording started"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Screen recording stopped"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rGB/strings_tv.xml b/packages/SystemUI/res/values-en-rGB/strings_tv.xml index eecc37264716..e97dbe4bd491 100644 --- a/packages/SystemUI/res/values-en-rGB/strings_tv.xml +++ b/packages/SystemUI/res/values-en-rGB/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Microphone stopped recording"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Camera stopped recording"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Camera and microphone stopped recording"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Screen recording started"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Screen recording stopped"</string> </resources> diff --git a/packages/SystemUI/res/values-en-rIN/strings_tv.xml b/packages/SystemUI/res/values-en-rIN/strings_tv.xml index eecc37264716..e97dbe4bd491 100644 --- a/packages/SystemUI/res/values-en-rIN/strings_tv.xml +++ b/packages/SystemUI/res/values-en-rIN/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Microphone stopped recording"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Camera stopped recording"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Camera and microphone stopped recording"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Screen recording started"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Screen recording stopped"</string> </resources> diff --git a/packages/SystemUI/res/values-es-rUS/strings.xml b/packages/SystemUI/res/values-es-rUS/strings.xml index d96d61ba3b99..c759542bdc66 100644 --- a/packages/SystemUI/res/values-es-rUS/strings.xml +++ b/packages/SystemUI/res/values-es-rUS/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Cámara"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Teléfono"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Asistente voz"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Billetera"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Escáner de código QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Desbloquear"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Dispositivo bloqueado"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Ver en modo de demostración"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Alarma"</string> - <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> + <string name="wallet_title" msgid="5369767670735827105">"Billetera"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Prepárate para realizar compras rápidas y seguras con tu teléfono"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Mostrar todo"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Presiona para abrir"</string> diff --git a/packages/SystemUI/res/values-es-rUS/strings_tv.xml b/packages/SystemUI/res/values-es-rUS/strings_tv.xml index 51c25d137fb0..513e0c7be7cc 100644 --- a/packages/SystemUI/res/values-es-rUS/strings_tv.xml +++ b/packages/SystemUI/res/values-es-rUS/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"El micrófono dejó de grabar"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"La cámara dejó de grabar"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"La cámara y el micrófono dejaron de grabar"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Se inició la grabación de pantalla"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Se detuvo la grabación de pantalla"</string> </resources> diff --git a/packages/SystemUI/res/values-es/strings.xml b/packages/SystemUI/res/values-es/strings.xml index 9206f70550eb..aff899870990 100644 --- a/packages/SystemUI/res/values-es/strings.xml +++ b/packages/SystemUI/res/values-es/strings.xml @@ -404,7 +404,7 @@ <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Tu administrador ha activado el registro de la red, por lo que se monitorizará el tráfico de tu perfil de trabajo, aunque no el de tu perfil personal."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"Este dispositivo está conectado a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. Tu actividad de red, como los correos electrónicos y los datos de navegación, es visible para tu administrador de TI."</string> <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Este dispositivo está conectado a Internet a través de <xliff:g id="VPN_APP_0">%1$s</xliff:g> y <xliff:g id="VPN_APP_1">%2$s</xliff:g>. Tu actividad de red, como los correos electrónicos y los datos de navegación, es visible para tu administrador de TI."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Tus aplicaciones de trabajo están conectadas a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. Tu actividad de red en estas aplicaciones, incluidos los correos electrónicos y los datos de navegación, es visible para tu administrador de TI y tu proveedor de VPN."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Tus aplicaciones de trabajo están conectadas a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. Tu actividad de red en las aplicaciones de trabajo, incluidos los correos electrónicos y los datos de navegación, es visible para tu administrador de TI y tu proveedor de VPN."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Tus aplicaciones personales están conectadas a Internet a través de <xliff:g id="VPN_APP">%1$s</xliff:g>. Tu actividad de red, como los correos electrónicos y los datos de navegación, es visible para tu proveedor de VPN."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"Abrir ajustes de VPN"</string> diff --git a/packages/SystemUI/res/values-es/strings_tv.xml b/packages/SystemUI/res/values-es/strings_tv.xml index 3d94f3d206d2..1482fd07b1d2 100644 --- a/packages/SystemUI/res/values-es/strings_tv.xml +++ b/packages/SystemUI/res/values-es/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"El micrófono ha dejado de grabar"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"La cámara ha dejado de grabar"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"La cámara y el micrófono han dejado de grabar"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Grabación de pantalla iniciada"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Grabación de pantalla detenida"</string> </resources> diff --git a/packages/SystemUI/res/values-es/tiles_states_strings.xml b/packages/SystemUI/res/values-es/tiles_states_strings.xml index 36a542a5ad67..d3e7c8b762de 100644 --- a/packages/SystemUI/res/values-es/tiles_states_strings.xml +++ b/packages/SystemUI/res/values-es/tiles_states_strings.xml @@ -64,7 +64,7 @@ <string-array name="tile_states_rotation"> <item msgid="4578491772376121579">"No disponible"</item> <item msgid="5776427577477729185">"Desactivada"</item> - <item msgid="7105052717007227415">"Activada"</item> + <item msgid="7105052717007227415">"Activado"</item> </string-array> <string-array name="tile_states_bt"> <item msgid="5330252067413512277">"No disponible"</item> @@ -89,7 +89,7 @@ <string-array name="tile_states_color_correction"> <item msgid="2840507878437297682">"No disponible"</item> <item msgid="1909756493418256167">"Desactivada"</item> - <item msgid="4531508423703413340">"Activada"</item> + <item msgid="4531508423703413340">"Activado"</item> </string-array> <string-array name="tile_states_inversion"> <item msgid="3638187931191394628">"No disponible"</item> diff --git a/packages/SystemUI/res/values-et/strings.xml b/packages/SystemUI/res/values-et/strings.xml index 38a66e7bb4b7..e11a16597dd2 100644 --- a/packages/SystemUI/res/values-et/strings.xml +++ b/packages/SystemUI/res/values-et/strings.xml @@ -373,7 +373,7 @@ <string name="quick_settings_disclosure_management_monitoring" msgid="8231336875820702180">"Teie organisatsioon on selle seadme omanik ja võib jälgida võrguliiklust"</string> <string name="quick_settings_disclosure_named_management_monitoring" msgid="2831423806103479812">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> on selle seadme omanik ja võib jälgida võrguliiklust"</string> <string name="quick_settings_financed_disclosure_named_management" msgid="2307703784594859524">"Selle seadme on andnud <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string> - <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"See seade kuulub teie organisatsioonile ja on internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu ühendatud"</string> + <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"See seade kuulub teie organisatsioonile ja on ühendatud internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu"</string> <string name="quick_settings_disclosure_named_management_named_vpn" msgid="2169227918166358741">"See seade kuulub organisatsioonile <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> ja on internetiga rakenduse <xliff:g id="VPN_APP">%2$s</xliff:g> kaudu ühendatud"</string> <string name="quick_settings_disclosure_management" msgid="5515296598440684962">"See seade kuulub teie organisatsioonile"</string> <string name="quick_settings_disclosure_named_management" msgid="3476472755775165827">"Selle seadme omanik on <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g>"</string> @@ -383,8 +383,8 @@ <string name="quick_settings_disclosure_named_managed_profile_monitoring" msgid="8321469176706219860">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> võib jälgida võrguliiklust teie tööprofiilil"</string> <string name="quick_settings_disclosure_managed_profile_network_activity" msgid="2636594621387832827">"Tööprofiili võrgutegevused on teie IT-administraatorile nähtavad"</string> <string name="quick_settings_disclosure_monitoring" msgid="8548019955631378680">"Võrku võidakse jälgida"</string> - <string name="quick_settings_disclosure_vpns" msgid="3586175303518266301">"See seade on internetiga VPN-ide kaudu ühendatud"</string> - <string name="quick_settings_disclosure_managed_profile_named_vpn" msgid="153393105176944100">"Teie töörakendused on internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu ühendatud"</string> + <string name="quick_settings_disclosure_vpns" msgid="3586175303518266301">"See seade on ühendatud internetiga VPN-ide kaudu"</string> + <string name="quick_settings_disclosure_managed_profile_named_vpn" msgid="153393105176944100">"Teie töörakendused on ühendatud internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu"</string> <string name="quick_settings_disclosure_personal_profile_named_vpn" msgid="451254750289172191">"Teie isiklikud rakendused on internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu ühendatud"</string> <string name="quick_settings_disclosure_named_vpn" msgid="6191822916936028208">"See seade on internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu ühendatud"</string> <string name="monitoring_title_financed_device" msgid="3659962357973919387">"Selle seadme on andnud <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string> @@ -403,8 +403,8 @@ <string name="monitoring_description_management_network_logging" msgid="216983105036994771">"Teie administraator lülitas sisse võrgu logimise funktsiooni, mis jälgib teie seadmes liiklust."</string> <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Teie administraator on sisse lülitanud võrgu logimise funktsiooni, mis jälgib liiklust teie võrguprofiilil, kuid mitte teie isiklikul profiilil."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"See seade on internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu ühendatud. Teie võrgutegevus, sealhulgas meilid ja sirvimisandmed, on nähtav teie IT-administraatorile."</string> - <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"See seade on internetiga rakenduse <xliff:g id="VPN_APP_0">%1$s</xliff:g> ja <xliff:g id="VPN_APP_1">%2$s</xliff:g> kaudu ühendatud. Teie võrgutegevus, sealhulgas meilid ja sirvimisandmed, on nähtav teie IT-administraatorile."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Teie töörakendused on internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu ühendatud. Teie töörakenduste võrgutegevus, sealhulgas meilid ja sirvimisandmed, on nähtav teie IT-administraatorile ning VPN-i teenusepakkujale."</string> + <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"See seade on ühendatud internetiga rakenduste <xliff:g id="VPN_APP_0">%1$s</xliff:g> ja <xliff:g id="VPN_APP_1">%2$s</xliff:g> kaudu. Teie võrgutegevused (sealhulgas meilid ja sirvimisandmed) on nähtavad teie IT-administraatorile."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Teie töörakendused on ühendatud internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu. Teie töörakenduste võrgutegevused (sealhulgas meilid ja sirvimisandmed) on nähtavad teie IT-administraatorile ning VPN-i teenusepakkujale."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Teie isiklikud rakendused on internetiga rakenduse <xliff:g id="VPN_APP">%1$s</xliff:g> kaudu ühendatud. Teie võrgutegevus, sealhulgas meilid ja sirvimisandmed, on nähtav teie VPN-i teenusepakkujale."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"VPN-i seadete avamine"</string> diff --git a/packages/SystemUI/res/values-et/strings_tv.xml b/packages/SystemUI/res/values-et/strings_tv.xml index b8e4a9a981a7..ee7bba8e2420 100644 --- a/packages/SystemUI/res/values-et/strings_tv.xml +++ b/packages/SystemUI/res/values-et/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon peatas salvestamise"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kaamera peatas salvestamise"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kaamera ja mikrofon peatasid salvestamise"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Ekraanikuva salvestamine algas"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Ekraanikuva salvestamine on peatatud"</string> </resources> diff --git a/packages/SystemUI/res/values-eu/strings.xml b/packages/SystemUI/res/values-eu/strings.xml index e325f7402618..35142b95f215 100644 --- a/packages/SystemUI/res/values-eu/strings.xml +++ b/packages/SystemUI/res/values-eu/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Kamera"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Telefonoa"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Ahots-laguntza"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Zorroa"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Diru-zorroa"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR kodeen eskanerra"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Desblokeatu"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Gailua blokeatuta dago"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Erakutsi demo modua"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Alarma"</string> - <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> + <string name="wallet_title" msgid="5369767670735827105">"Diru-zorroa"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Konfiguratu erosketa bizkorrago eta seguruagoak egiteko telefonoarekin"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Erakutsi guztiak"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Irekitzeko, sakatu hau"</string> @@ -547,7 +547,7 @@ <string name="keyboard_key_dpad_left" msgid="8329738048908755640">"Ezkerrera"</string> <string name="keyboard_key_dpad_right" msgid="6282105433822321767">"Eskuinera"</string> <string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Erdiratu"</string> - <string name="keyboard_key_tab" msgid="4592772350906496730">"Tabuladorea"</string> + <string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string> <string name="keyboard_key_space" msgid="6980847564173394012">"Zuriunea"</string> <string name="keyboard_key_enter" msgid="8633362970109751646">"Sartu"</string> <string name="keyboard_key_backspace" msgid="4095278312039628074">"Atzera"</string> @@ -572,7 +572,7 @@ <string name="keyboard_shortcut_group_system_back" msgid="1055709713218453863">"Atzera"</string> <string name="keyboard_shortcut_group_system_notifications" msgid="3615971650562485878">"Jakinarazpenak"</string> <string name="keyboard_shortcut_group_system_shortcuts_helper" msgid="4856808328618265589">"Lasterbideak"</string> - <string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Aldatu teklatuaren diseinua"</string> + <string name="keyboard_shortcut_group_system_switch_input" msgid="952555530383268166">"Aldatu tekl. diseinua"</string> <string name="keyboard_shortcut_group_applications" msgid="7386239431100651266">"Aplikazioak"</string> <string name="keyboard_shortcut_group_applications_assist" msgid="771606231466098742">"Laguntzailea"</string> <string name="keyboard_shortcut_group_applications_browser" msgid="2776211137869809251">"Arakatzailea"</string> diff --git a/packages/SystemUI/res/values-eu/strings_tv.xml b/packages/SystemUI/res/values-eu/strings_tv.xml index 40a17b257751..de5249bf7e5b 100644 --- a/packages/SystemUI/res/values-eu/strings_tv.xml +++ b/packages/SystemUI/res/values-eu/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofonoak grabatzeari utzi dio"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamerak grabatzeari utzi dio"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamerak eta mikrofonoak grabatzeari utzi diote"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Hasi da pantailaren grabaketa"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Gelditu da pantailaren grabaketa"</string> </resources> diff --git a/packages/SystemUI/res/values-fa/strings.xml b/packages/SystemUI/res/values-fa/strings.xml index c4afda29a5a4..8719b00b17c1 100644 --- a/packages/SystemUI/res/values-fa/strings.xml +++ b/packages/SystemUI/res/values-fa/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"دوربین"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"تلفن"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"دستیار صوتی"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"کیف پول"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"کدخوان پاسخسریع"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"باز کردن قفل"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"دستگاه قفل است"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"نمایش حالت نمایشی"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"اترنت"</string> <string name="status_bar_alarm" msgid="87160847643623352">"زنگ"</string> - <string name="wallet_title" msgid="5369767670735827105">"کیفپول"</string> + <string name="wallet_title" msgid="5369767670735827105">"کیف پول"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"برای خرید سریعتر و امنتر با تلفن، راهاندازی کنید"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"نمایش همه"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"برای باز کردن ضربه بزنید"</string> diff --git a/packages/SystemUI/res/values-fa/strings_tv.xml b/packages/SystemUI/res/values-fa/strings_tv.xml index 95471f3070c9..89f57afabe02 100644 --- a/packages/SystemUI/res/values-fa/strings_tv.xml +++ b/packages/SystemUI/res/values-fa/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"ضبط میکروفون متوقف شد"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ضبط دوربین متوقف شد"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ضبط دوربین و میکروفون متوقف شد"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"ضبط صفحه شروع شد"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"ضبط صفحه متوقف شد"</string> </resources> diff --git a/packages/SystemUI/res/values-fi/strings_tv.xml b/packages/SystemUI/res/values-fi/strings_tv.xml index 99df977b9e97..61198d46542f 100644 --- a/packages/SystemUI/res/values-fi/strings_tv.xml +++ b/packages/SystemUI/res/values-fi/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofoni lopetti tallentamisen"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera lopetti kuvaamisen"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera ja mikrofoni lopettivat tallentamisen"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Näytön tallennus aloitettu"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Näytön tallennus lopetettu"</string> </resources> diff --git a/packages/SystemUI/res/values-fr-rCA/strings_tv.xml b/packages/SystemUI/res/values-fr-rCA/strings_tv.xml index c9863896f875..7ab63afa5940 100644 --- a/packages/SystemUI/res/values-fr-rCA/strings_tv.xml +++ b/packages/SystemUI/res/values-fr-rCA/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Le microphone a arrêté l\'enregistrement"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"L\'appareil photo a arrêté l\'enregistrement"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"L\'appareil photo et le microphone ont arrêté l\'enregistrement"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"L\'enregistrement d\'écran a commencé"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"L\'enregistrement d\'écran s\'est arrêté"</string> </resources> diff --git a/packages/SystemUI/res/values-fr/strings.xml b/packages/SystemUI/res/values-fr/strings.xml index e163049b0f40..815f0189dd01 100644 --- a/packages/SystemUI/res/values-fr/strings.xml +++ b/packages/SystemUI/res/values-fr/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Appareil photo"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Téléphoner"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Assistance vocale"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Portefeuille"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Lecteur de code QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Déverrouiller"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Appareil verrouillé"</string> diff --git a/packages/SystemUI/res/values-fr/strings_tv.xml b/packages/SystemUI/res/values-fr/strings_tv.xml index ccddc914caaa..d1ac55425a58 100644 --- a/packages/SystemUI/res/values-fr/strings_tv.xml +++ b/packages/SystemUI/res/values-fr/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Le micro a arrêté l\'enregistrement"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"La caméra a arrêté l\'enregistrement"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"La caméra et le micro ont arrêté l\'enregistrement"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Enregistrement de l\'écran démarré"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Enregistrement de l\'écran arrêté"</string> </resources> diff --git a/packages/SystemUI/res/values-gl/strings_tv.xml b/packages/SystemUI/res/values-gl/strings_tv.xml index a9f537cdcdfc..58279ee40b18 100644 --- a/packages/SystemUI/res/values-gl/strings_tv.xml +++ b/packages/SystemUI/res/values-gl/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"O micrófono deixou de gravar"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"A cámara deixou de gravar"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"A cámara e o micrófono deixaron de gravar"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Iniciouse a gravación da pantalla"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Parouse a gravación da pantalla"</string> </resources> diff --git a/packages/SystemUI/res/values-gu/strings_tv.xml b/packages/SystemUI/res/values-gu/strings_tv.xml index 8c7714271cf3..096a93a998d1 100644 --- a/packages/SystemUI/res/values-gu/strings_tv.xml +++ b/packages/SystemUI/res/values-gu/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"માઇક્રોફોનનું રેકોર્ડિંગ બંધ થઈ ગયું"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"કૅમેરાનું રેકોર્ડિંગ બંધ થઈ ગયું"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"કૅમેરા અને માઇક્રોફોનનું રેકોર્ડિંગ બંધ થઈ ગયું"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"સ્ક્રીન રેકોર્ડિંગ શરૂ થયું"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"સ્ક્રીન રેકોર્ડિંગ બંધ કર્યું"</string> </resources> diff --git a/packages/SystemUI/res/values-hi/strings.xml b/packages/SystemUI/res/values-hi/strings.xml index 2e2779ae6300..d385337a1a44 100644 --- a/packages/SystemUI/res/values-hi/strings.xml +++ b/packages/SystemUI/res/values-hi/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"कैमरा"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"फ़ोन"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"आवाज़ से डिवाइस का इस्तेमाल"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"वॉलेट बटन"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"क्यूआर कोड स्कैनर"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"अनलॉक करें"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"डिवाइस लॉक है"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"डेमो मोड दिखाएं"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"ईथरनेट"</string> <string name="status_bar_alarm" msgid="87160847643623352">"अलार्म"</string> - <string name="wallet_title" msgid="5369767670735827105">"वॉलेट"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"फ़ोन के ज़रिए तेज़ी से और सुरक्षित तरीके से खरीदारी करने के लिए सेट अप करें"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"सभी दिखाएं"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"अनलॉक करने के लिए टैप करें"</string> diff --git a/packages/SystemUI/res/values-hi/strings_tv.xml b/packages/SystemUI/res/values-hi/strings_tv.xml index b416eade8e68..0e5e1225a4d8 100644 --- a/packages/SystemUI/res/values-hi/strings_tv.xml +++ b/packages/SystemUI/res/values-hi/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"माइक्रोफ़ोन ने रिकॉर्ड करना बंद कर दिया है"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"कैमरे ने रिकॉर्ड करना बंद कर दिया है"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"कैमरे और माइक्रोफ़ोन ने रिकॉर्ड करना बंद कर दिया है"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"स्क्रीन रिकॉर्डिंग शुरू की गई"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"स्क्रीन रिकॉर्डिंग बंद की गई"</string> </resources> diff --git a/packages/SystemUI/res/values-hr/strings_tv.xml b/packages/SystemUI/res/values-hr/strings_tv.xml index 2c1de87af621..61cf646aa849 100644 --- a/packages/SystemUI/res/values-hr/strings_tv.xml +++ b/packages/SystemUI/res/values-hr/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon je prestao snimati"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera je prestala snimati"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera i mikrofon prestali su snimati"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Snimanje zaslona je počelo"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Snimanje zaslona je zaustavljeno"</string> </resources> diff --git a/packages/SystemUI/res/values-hu/strings_tv.xml b/packages/SystemUI/res/values-hu/strings_tv.xml index e06c0f379480..f251c38fdd5d 100644 --- a/packages/SystemUI/res/values-hu/strings_tv.xml +++ b/packages/SystemUI/res/values-hu/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"A mikrofon befejezte a felvételkészítést"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"A kamera befejezte a felvételkészítést"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"A kamera és a mikrofon befejezte a felvételkészítést"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"A képernyő rögzítése elindult"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"A képernyő rögzítése leállt"</string> </resources> diff --git a/packages/SystemUI/res/values-hy/strings.xml b/packages/SystemUI/res/values-hy/strings.xml index 41a68c5fb42e..a707c63d2bee 100644 --- a/packages/SystemUI/res/values-hy/strings.xml +++ b/packages/SystemUI/res/values-hy/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Տեսախցիկ"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Հեռախոս"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Ձայնային հուշումներ"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Դրամապանակ"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR կոդերի սկաներ"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Ապակողպել"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Սարքը կողպված է"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Ցուցադրական ռեժիմի ցուցադրում"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Զարթուցիչ"</string> - <string name="wallet_title" msgid="5369767670735827105">"Դրամապանակ"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Վճարեք հեռախոսով՝ ավելի արագ և ապահով"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Ցույց տալ բոլորը"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Հպեք բացելու համար"</string> diff --git a/packages/SystemUI/res/values-hy/strings_tv.xml b/packages/SystemUI/res/values-hy/strings_tv.xml index 99961d3dd492..b6a2e138d7e6 100644 --- a/packages/SystemUI/res/values-hy/strings_tv.xml +++ b/packages/SystemUI/res/values-hy/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Խոսափողն այլևս չի ձայնագրում"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Տեսախցիկն այլևս չի տեսագրում"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Տեսախցիկն ու խոսափողը այլևս չեն տեսաձայնագրում"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Էկրանի տեսագրումը սկսվեց"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Էկրանի տեսագրումը կանգնեցվեց"</string> </resources> diff --git a/packages/SystemUI/res/values-in/strings_tv.xml b/packages/SystemUI/res/values-in/strings_tv.xml index 0e718f922937..1b8261e7c8a6 100644 --- a/packages/SystemUI/res/values-in/strings_tv.xml +++ b/packages/SystemUI/res/values-in/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon berhenti merekam"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera berhenti merekam"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera dan Mikrofon berhenti merekam"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Perekaman layar dimulai"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Perekaman layar dihentikan"</string> </resources> diff --git a/packages/SystemUI/res/values-is/strings_tv.xml b/packages/SystemUI/res/values-is/strings_tv.xml index d4096534b3f1..7150fc813528 100644 --- a/packages/SystemUI/res/values-is/strings_tv.xml +++ b/packages/SystemUI/res/values-is/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Hljóðnemi er hættur að taka upp"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Myndavél er hætt að taka upp"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Myndavél og hljóðnemi eru hætt að taka upp"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Skjáupptaka er hafin"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Skjáupptöku er lokið"</string> </resources> diff --git a/packages/SystemUI/res/values-it/strings.xml b/packages/SystemUI/res/values-it/strings.xml index c2be668bb418..e16fc15ec3d1 100644 --- a/packages/SystemUI/res/values-it/strings.xml +++ b/packages/SystemUI/res/values-it/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Fotocamera"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Telefono"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Voice Assist"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Portafoglio"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Scanner codici QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Sblocca"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Dispositivo bloccato"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Mostra modalità demo"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Sveglia"</string> - <string name="wallet_title" msgid="5369767670735827105">"Portafoglio"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Imposta un metodo di pagamento per effettuare acquisti in modo più rapido e sicuro con il telefono"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Mostra tutto"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Tocca per aprire"</string> diff --git a/packages/SystemUI/res/values-it/strings_tv.xml b/packages/SystemUI/res/values-it/strings_tv.xml index b32602962d76..ab9ee7837b00 100644 --- a/packages/SystemUI/res/values-it/strings_tv.xml +++ b/packages/SystemUI/res/values-it/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Registrazione con il microfono interrotta"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Registrazione con la fotocamera interrotta"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Registrazione con fotocamera e microfono interrotta"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Registrazione dello schermo avviata"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Registrazione dello schermo interrotta"</string> </resources> diff --git a/packages/SystemUI/res/values-iw/strings_tv.xml b/packages/SystemUI/res/values-iw/strings_tv.xml index 6e946b799d0c..1085505c6352 100644 --- a/packages/SystemUI/res/values-iw/strings_tv.xml +++ b/packages/SystemUI/res/values-iw/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"המיקרופון הפסיק להקליט"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"המצלמה הפסיקה להקליט"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"המצלמה והמיקרופון הפסיקו להקליט"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"הקלטת המסך החלה"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"הקלטת המסך הופסקה"</string> </resources> diff --git a/packages/SystemUI/res/values-ja/strings_tv.xml b/packages/SystemUI/res/values-ja/strings_tv.xml index 84fc4a0dd728..6b68c73b884b 100644 --- a/packages/SystemUI/res/values-ja/strings_tv.xml +++ b/packages/SystemUI/res/values-ja/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"マイクが録音を停止しました"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"カメラが録画を停止しました"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"カメラとマイクが録画、録音を停止しました"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"画面の録画を開始しました"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"画面の録画を停止しました"</string> </resources> diff --git a/packages/SystemUI/res/values-ka/strings.xml b/packages/SystemUI/res/values-ka/strings.xml index 3d2ae11fe34c..406aea64e618 100644 --- a/packages/SystemUI/res/values-ka/strings.xml +++ b/packages/SystemUI/res/values-ka/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"კამერა"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ტელეფონი"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"ხმოვანი დახმარება"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"საფულე"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR კოდის სკანერი"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"განბლოკვა"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"მოწყობილობა ჩაკეტილია"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"დემო-რეჟიმის ჩვენება"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"ეთერნეტი"</string> <string name="status_bar_alarm" msgid="87160847643623352">"მაღვიძარა"</string> - <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> + <string name="wallet_title" msgid="5369767670735827105">"საფულე"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"დააყენეთ შესყიდვების თქვენი ტელეფონით უფრო სწრაფად და უსაფრთხოდ შესასრულებლად"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"ყველას ჩვენება"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"შეეხეთ გასახსნელად"</string> diff --git a/packages/SystemUI/res/values-ka/strings_tv.xml b/packages/SystemUI/res/values-ka/strings_tv.xml index 96d5cddcea00..dcaa13863650 100644 --- a/packages/SystemUI/res/values-ka/strings_tv.xml +++ b/packages/SystemUI/res/values-ka/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"მიკროფონმა ჩაწერა შეწყვიტა"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"კამერამ ჩაწერა შეწყვიტა"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"კამერამ და მიკროფონმა ჩაწერა შეწყვიტა"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"ეკრანის ჩაწერა დაიწყო"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"ეკრანის ჩაწერა დასრულდა"</string> </resources> diff --git a/packages/SystemUI/res/values-kk/strings.xml b/packages/SystemUI/res/values-kk/strings.xml index 38d71d3dfbe9..4f5b7e05cf48 100644 --- a/packages/SystemUI/res/values-kk/strings.xml +++ b/packages/SystemUI/res/values-kk/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Камера"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Телефон"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Дауыс көмекшісі"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Әмиян"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR кодын сканерлеу қолданбасы"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Бекітпесін ашу"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Құрылғы құлыпталды."</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Демо режимін көрсету"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Оятқыш"</string> - <string name="wallet_title" msgid="5369767670735827105">"Әмиян"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Телефоныңызбен бұрынғыдан да жылдам әрі қауіпсіз сатып алу үшін параметрлерді орнатыңыз."</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Барлығын көрсету"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Ашу үшін түртіңіз"</string> diff --git a/packages/SystemUI/res/values-kk/strings_tv.xml b/packages/SystemUI/res/values-kk/strings_tv.xml index 405fbfa71290..bb0e06b34b25 100644 --- a/packages/SystemUI/res/values-kk/strings_tv.xml +++ b/packages/SystemUI/res/values-kk/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Микрофон жазуды тоқтатты."</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Камера жазуды тоқтатты."</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Камера мен микрофон жазуды тоқтатты."</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Экранды бейнеге жазу басталды."</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Экранды бейнеге жазу тоқтатылды."</string> </resources> diff --git a/packages/SystemUI/res/values-km/strings.xml b/packages/SystemUI/res/values-km/strings.xml index 0a6567d8bd1b..a921cb94b7e2 100644 --- a/packages/SystemUI/res/values-km/strings.xml +++ b/packages/SystemUI/res/values-km/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"ម៉ាស៊ីនថត"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ទូរសព្ទ"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"ជំនួយសំឡេង"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"កាបូប"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"កម្មវិធីស្កេនកូដ QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"ដោះសោ"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"បានចាក់សោឧបករណ៍"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"បង្ហាញរបៀបសាកល្បង"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"អ៊ីសឺរណិត"</string> <string name="status_bar_alarm" msgid="87160847643623352">"ម៉ោងរោទ៍"</string> - <string name="wallet_title" msgid="5369767670735827105">"កាបូប"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"ធ្វើការរៀបចំ ដើម្បីធ្វើការទិញកាន់តែលឿនជាងមុន សុវត្ថិភាពជាងមុន ដោយប្រើទូរសព្ទរបស់អ្នក"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"បង្ហាញទាំងអស់"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"ចុចដើម្បីបើក"</string> diff --git a/packages/SystemUI/res/values-km/strings_tv.xml b/packages/SystemUI/res/values-km/strings_tv.xml index d43d1ce4083a..1be9d48a6036 100644 --- a/packages/SystemUI/res/values-km/strings_tv.xml +++ b/packages/SystemUI/res/values-km/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"មីក្រូហ្វូនបានឈប់ថត"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"កាមេរ៉ាបានឈប់ថត"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"កាមេរ៉ា និងមីក្រូហ្វូនបានឈប់ថត"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"មុខងារថតវីដេអូអេក្រង់បានចាប់ផ្ដើម"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"មុខងារថតវីដេអូអេក្រង់បានបញ្ឈប់"</string> </resources> diff --git a/packages/SystemUI/res/values-kn/strings.xml b/packages/SystemUI/res/values-kn/strings.xml index 82412d0500d8..46fa9a4c4d7e 100644 --- a/packages/SystemUI/res/values-kn/strings.xml +++ b/packages/SystemUI/res/values-kn/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"ಕ್ಯಾಮರಾ"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ಫೋನ್"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"ಧ್ವನಿ ಸಹಾಯಕ"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"ವಾಲೆಟ್"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR ಕೋಡ್ ಸ್ಕ್ಯಾನರ್"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"ಅನ್ಲಾಕ್"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"ಸಾಧನ ಲಾಕ್ ಆಗಿದೆ"</string> diff --git a/packages/SystemUI/res/values-kn/strings_tv.xml b/packages/SystemUI/res/values-kn/strings_tv.xml index 9b6b446ba676..cfcc89642948 100644 --- a/packages/SystemUI/res/values-kn/strings_tv.xml +++ b/packages/SystemUI/res/values-kn/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"ಮೈಕ್ರೊಫೋನ್ ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಿದೆ"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ಕ್ಯಾಮರಾ ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಲಾಗಿದೆ"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್ ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಿವೆ"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ಪ್ರಾರಂಭವಾಗಿದೆ"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"ಸ್ಕ್ರೀನ್ ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಲಾಗಿದೆ"</string> </resources> diff --git a/packages/SystemUI/res/values-ko/strings.xml b/packages/SystemUI/res/values-ko/strings.xml index 7e42d2011c1c..47c26460b94e 100644 --- a/packages/SystemUI/res/values-ko/strings.xml +++ b/packages/SystemUI/res/values-ko/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"카메라"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"전화"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"음성 지원"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"지갑"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"월렛"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR 코드 스캐너"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"잠금 해제"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"기기 잠김"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"데모 모드 표시"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"이더넷"</string> <string name="status_bar_alarm" msgid="87160847643623352">"알람"</string> - <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> + <string name="wallet_title" msgid="5369767670735827105">"월렛"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"설정하여 휴대전화로 더욱 빠르고 안전하게 구매하세요."</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"모두 표시"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"탭하여 열기"</string> diff --git a/packages/SystemUI/res/values-ko/strings_tv.xml b/packages/SystemUI/res/values-ko/strings_tv.xml index cd607d436ede..2412ae84efae 100644 --- a/packages/SystemUI/res/values-ko/strings_tv.xml +++ b/packages/SystemUI/res/values-ko/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"마이크 녹음 중단됨"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"카메라 녹화 중단됨"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"카메라 녹화 및 마이크 녹음 중단됨"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"화면 녹화가 시작되었습니다."</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"화면 녹화가 중지되었습니다."</string> </resources> diff --git a/packages/SystemUI/res/values-ky/strings.xml b/packages/SystemUI/res/values-ky/strings.xml index 321554ce2242..437708acefff 100644 --- a/packages/SystemUI/res/values-ky/strings.xml +++ b/packages/SystemUI/res/values-ky/strings.xml @@ -404,7 +404,7 @@ <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Администраторуңуз жумуш профилиңиздеги трафикке көз салуу үчүн, тармактын таржымалын иштетип койду (жеке профилиңизден маалымат алынбайт)."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"Бул түзмөк Интернетке <xliff:g id="VPN_APP">%1$s</xliff:g> аркылуу туташып турат. Тармактагы аракеттериңиз, ошондой эле электрондук почтадагы жана серепчидеги нерселериңиз IT администраторуңузга көрүнүп турат."</string> <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Бул түзмөк Интернетке <xliff:g id="VPN_APP_0">%1$s</xliff:g> жана <xliff:g id="VPN_APP_1">%2$s</xliff:g> аркылуу туташып турат. Тармактагы аракеттериңиз, ошондой эле электрондук почтадагы жана серепчидеги нерселериңиз IT администраторуңузга көрүнүп турат."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Жумуш колдонмолоруңуз Интернетке <xliff:g id="VPN_APP">%1$s</xliff:g> аркылуу туташып турушат. Жумуш колдонмолору аркылуу тармакта жасаган аракеттериңиз, ошондой эле электрондук почтадагы жана серепчидеги нерселериңиз VPN провайдерине көрүнүп турат."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Жумуш колдонмолоруңуз Интернетке <xliff:g id="VPN_APP">%1$s</xliff:g> аркылуу туташып турушат. Тармакта жумуш колдонмолору аркылуу жасаган аракеттериңиз, ошондой эле электрондук почтадагы жана серепчидеги нерселериңиз IT администраторуңузга жана VPN провайдерине көрүнөт."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Жеке колдонмолоруңуз Интернетке <xliff:g id="VPN_APP">%1$s</xliff:g> аркылуу туташып турушат. Тармактагы аракеттериңиз, ошондой эле электрондук почтадагы жана серепчидеги нерселериңиз VPN провайдерине көрүнүп турат."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"VPN жөндөөлөрүн ачуу"</string> diff --git a/packages/SystemUI/res/values-ky/strings_tv.xml b/packages/SystemUI/res/values-ky/strings_tv.xml index ecd89843e5bb..7ad134a144d4 100644 --- a/packages/SystemUI/res/values-ky/strings_tv.xml +++ b/packages/SystemUI/res/values-ky/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Микрофон жаздырууну токтотту"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Камера жаздырууну токтотту"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Камера менен микрофон жаздырууну токтотту"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Экрандан видео жаздырылып башталды"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Экрандан видео жаздыруу токтотулду"</string> </resources> diff --git a/packages/SystemUI/res/values-lo/strings_tv.xml b/packages/SystemUI/res/values-lo/strings_tv.xml index fbe25eacd2d3..759931dbaef9 100644 --- a/packages/SystemUI/res/values-lo/strings_tv.xml +++ b/packages/SystemUI/res/values-lo/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"ໄມໂຄຣໂຟນຢຸດການບັນທຶກແລ້ວ"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ກ້ອງຖ່າຍຮູບຢຸດການບັນທຶກແລ້ວ"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ກ້ອງຖ່າຍຮູບ ແລະ ໄມໂຄຣໂຟນຢຸດການບັນທຶກແລ້ວ"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"ເລີ່ມການບັນທຶກໜ້າຈໍແລ້ວ"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"ຢຸດການບັນທຶກໜ້າຈໍແລ້ວ"</string> </resources> diff --git a/packages/SystemUI/res/values-lt/strings_tv.xml b/packages/SystemUI/res/values-lt/strings_tv.xml index 5a8c9c619576..93c77f5e3216 100644 --- a/packages/SystemUI/res/values-lt/strings_tv.xml +++ b/packages/SystemUI/res/values-lt/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofonas nebeįrašo"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera nebeįrašo"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera ir mikrofonas nebeįrašo"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Ekrano vaizdo įrašymas pradėtas"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Ekrano vaizdo įrašymas sustabdytas"</string> </resources> diff --git a/packages/SystemUI/res/values-lv/strings.xml b/packages/SystemUI/res/values-lv/strings.xml index 239554d5b148..a1a242450f73 100644 --- a/packages/SystemUI/res/values-lv/strings.xml +++ b/packages/SystemUI/res/values-lv/strings.xml @@ -547,7 +547,7 @@ <string name="keyboard_key_dpad_left" msgid="8329738048908755640">"Pa kreisi"</string> <string name="keyboard_key_dpad_right" msgid="6282105433822321767">"Pa labi"</string> <string name="keyboard_key_dpad_center" msgid="4079412840715672825">"Centrā"</string> - <string name="keyboard_key_tab" msgid="4592772350906496730">"Tabulēšanas taustiņš"</string> + <string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string> <string name="keyboard_key_space" msgid="6980847564173394012">"Atstarpe"</string> <string name="keyboard_key_enter" msgid="8633362970109751646">"Ievadīšanas taustiņš"</string> <string name="keyboard_key_backspace" msgid="4095278312039628074">"Atpakaļatkāpes taustiņš"</string> diff --git a/packages/SystemUI/res/values-lv/strings_tv.xml b/packages/SystemUI/res/values-lv/strings_tv.xml index 7a6a46cebc87..da64f3267252 100644 --- a/packages/SystemUI/res/values-lv/strings_tv.xml +++ b/packages/SystemUI/res/values-lv/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Ierakstīšana ar mikrofonu apturēta"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Ierakstīšana ar kameru apturēta"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Ierakstīšana ar kameru un mikrofonu apturēta"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Ekrāna ierakstīšana ir sākta."</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Ekrāna ierakstīšana ir apturēta."</string> </resources> diff --git a/packages/SystemUI/res/values-mk/strings.xml b/packages/SystemUI/res/values-mk/strings.xml index 808fc9f77ecb..5c1bf4afff13 100644 --- a/packages/SystemUI/res/values-mk/strings.xml +++ b/packages/SystemUI/res/values-mk/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Камера"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Телефон"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Гласовна помош"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Паричник"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Скенер на QR-кодови"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Отклучување"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Уредот е заклучен"</string> @@ -403,7 +403,7 @@ <string name="monitoring_description_management_network_logging" msgid="216983105036994771">"Вашиот администратор вклучил евиденција на мрежата, што подразбира следење на сообраќајот на вашиот уред."</string> <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Вашиот администратор вклучил мрежна евиденција, што подразбира следење на сообраќајот во работниот, но не и во личниот профил."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"Уредов е поврзан на интернет преку <xliff:g id="VPN_APP">%1$s</xliff:g>. Вашата мрежна активност во работните апликации, вклучително е-пораките и податоците од прелистување, е видлива за вашиот IT-администратор."</string> - <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Уредот е поврзан на интернет преку <xliff:g id="VPN_APP_0">%1$s</xliff:g> и <xliff:g id="VPN_APP_1">%2$s</xliff:g>. Вашата мрежна активност во работните апликации, вклучително е-пораките и податоците од прелистување, е видлива за вашиот IT-администратор."</string> + <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Уредот е поврзан на интернет преку <xliff:g id="VPN_APP_0">%1$s</xliff:g> и <xliff:g id="VPN_APP_1">%2$s</xliff:g>. Вашата мрежна активност, вклучително е-пораките и податоците од прелистување, е видлива за IT-администраторот."</string> <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Вашите работни апликации се поврзани на интернет преку <xliff:g id="VPN_APP">%1$s</xliff:g>. Вашата мрежна активност во работните апликации, вклучително е-пораките и податоците од прелистување, е видлива за вашиот IT-администратор и давател на услуги за VPN."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Вашите лични апликации се поврзани на интернет преку <xliff:g id="VPN_APP">%1$s</xliff:g>. Вашата мрежна активност во работните апликации, вклучително е-пораките и податоците од прелистување, е видлива за вашиот давател на услуги за VPN."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Прикажи демо-режим"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Етернет"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Аларм"</string> - <string name="wallet_title" msgid="5369767670735827105">"Паричник"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Поставете за да купувате побрзо и побезбедно преку вашиот телефон"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Прикажи ги сите"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Допрете за да отворите"</string> diff --git a/packages/SystemUI/res/values-mk/strings_tv.xml b/packages/SystemUI/res/values-mk/strings_tv.xml index 4cea3403d6df..529d19d0edaa 100644 --- a/packages/SystemUI/res/values-mk/strings_tv.xml +++ b/packages/SystemUI/res/values-mk/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Микрофонот прекина со снимање"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Камерата прекина со снимање"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Камерата и микрофонот прекинаа со снимање"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Снимањето екран започна"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Снимањето екран сопре"</string> </resources> diff --git a/packages/SystemUI/res/values-ml/strings.xml b/packages/SystemUI/res/values-ml/strings.xml index ec3545d4ea70..e95197891ead 100644 --- a/packages/SystemUI/res/values-ml/strings.xml +++ b/packages/SystemUI/res/values-ml/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"ക്യാമറ"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ഫോണ്"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"വോയ്സ് സഹായം"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"വാലറ്റ്"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR കോഡ് സ്കാനർ"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"അണ്ലോക്ക് ചെയ്യുക"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"ഉപകരണം ലോക്ക് ചെയ്തു"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"ഡെമോ മോഡ് കാണിക്കുക"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"ഇതർനെറ്റ്"</string> <string name="status_bar_alarm" msgid="87160847643623352">"അലാറം"</string> - <string name="wallet_title" msgid="5369767670735827105">"വാലറ്റ്"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"നിങ്ങളുടെ ഫോൺ ഉപയോഗിച്ച് വാങ്ങലുകൾ വേഗത്തിലും സുരക്ഷിതമായും നടത്താനുള്ള സജ്ജീകരണം നടത്തുക"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"എല്ലാം കാണിക്കുക"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"തുറക്കാൻ ടാപ്പ് ചെയ്യുക"</string> diff --git a/packages/SystemUI/res/values-ml/strings_tv.xml b/packages/SystemUI/res/values-ml/strings_tv.xml index 3082b5d56395..2faccb8e6f65 100644 --- a/packages/SystemUI/res/values-ml/strings_tv.xml +++ b/packages/SystemUI/res/values-ml/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"മൈക്രോഫോൺ റെക്കോർഡ് ചെയ്യുന്നത് നിർത്തി"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ക്യാമറ റെക്കോർഡ് ചെയ്യുന്നത് നിർത്തി"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ക്യാമറയും മൈക്രോഫോണും റെക്കോർഡ് ചെയ്യുന്നത് നിർത്തി"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"സ്ക്രീൻ റെക്കോർഡിംഗ് ആരംഭിച്ചു"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"സ്ക്രീൻ റെക്കോർഡിംഗ് നിർത്തി"</string> </resources> diff --git a/packages/SystemUI/res/values-mn/strings_tv.xml b/packages/SystemUI/res/values-mn/strings_tv.xml index e0a9a310e16a..c9b667c8f575 100644 --- a/packages/SystemUI/res/values-mn/strings_tv.xml +++ b/packages/SystemUI/res/values-mn/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Микрофон бичихээ зогсоосон"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Камер бичихээ зогсоосон"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Камер болон микрофон бичихээ зогсоосон"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Дэлгэцийн бичлэгийг эхлүүлсэн"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Дэлгэцийн бичлэгийг зогсоосон"</string> </resources> diff --git a/packages/SystemUI/res/values-mr/strings_tv.xml b/packages/SystemUI/res/values-mr/strings_tv.xml index 7824dd03639b..74d60cd10275 100644 --- a/packages/SystemUI/res/values-mr/strings_tv.xml +++ b/packages/SystemUI/res/values-mr/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"मायक्रोफोनने रेकॉर्ड करणे थांबवले"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"कॅमेराने रेकॉर्ड करणे थांबवले"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"कॅमेरा आणि मायक्रोफोनने रेकॉर्ड करणे थांबवले"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"स्क्रीन रेकॉर्डिंग सुरू झाले आहे"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"स्क्रीन रेकॉर्डिंग थांबले आहे"</string> </resources> diff --git a/packages/SystemUI/res/values-ms/strings.xml b/packages/SystemUI/res/values-ms/strings.xml index 4b7880fb242f..e85b3a01e8be 100644 --- a/packages/SystemUI/res/values-ms/strings.xml +++ b/packages/SystemUI/res/values-ms/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Kamera"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Telefon"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Bantuan Suara"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Dompet"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Pengimbas Kod QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Buka kunci"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Peranti dikunci"</string> diff --git a/packages/SystemUI/res/values-ms/strings_tv.xml b/packages/SystemUI/res/values-ms/strings_tv.xml index bcb8b75805c3..08b9de04741c 100644 --- a/packages/SystemUI/res/values-ms/strings_tv.xml +++ b/packages/SystemUI/res/values-ms/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon berhenti merakam"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera berhenti merakam"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera dan Mikrofon berhenti merakam"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Rakaman skrin dimulakan"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Rakaman skrin dihentikan"</string> </resources> diff --git a/packages/SystemUI/res/values-my/strings_tv.xml b/packages/SystemUI/res/values-my/strings_tv.xml index fc59d62b449e..0ac3950c094a 100644 --- a/packages/SystemUI/res/values-my/strings_tv.xml +++ b/packages/SystemUI/res/values-my/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"မိုက်ခရိုဖုန်း မှတ်တမ်းတင်ခြင်းကို ရပ်ထားသည်"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ကင်မရာ မှတ်တမ်းတင်ခြင်းကို ရပ်ထားသည်"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ကင်မရာနှင့် မိုက်ခရိုဖုန်းက မှတ်တမ်းတင်ခြင်းကို ရပ်ထားသည်"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"မျက်နှာပြင် ရိုက်ကူးမှု စတင်လိုက်ပါပြီ"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"မျက်နှာပြင် ရိုက်ကူးမှုကို ရပ်လိုက်ပါပြီ"</string> </resources> diff --git a/packages/SystemUI/res/values-nb/strings_tv.xml b/packages/SystemUI/res/values-nb/strings_tv.xml index 45c9d130ce95..5848f58833c2 100644 --- a/packages/SystemUI/res/values-nb/strings_tv.xml +++ b/packages/SystemUI/res/values-nb/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofonen stoppet opptaket"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kameraet stoppet opptaket"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kameraet og mikrofonen stoppet opptaket"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Skjermopptaket er startet"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Skjermopptaket er stoppet"</string> </resources> diff --git a/packages/SystemUI/res/values-ne/strings_tv.xml b/packages/SystemUI/res/values-ne/strings_tv.xml index 3ee16ca0daa0..ffc315b2bdc8 100644 --- a/packages/SystemUI/res/values-ne/strings_tv.xml +++ b/packages/SystemUI/res/values-ne/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"माइक्रोफोनले रेकर्ड गर्न छाड्यो"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"क्यामेराले रेकर्ड गर्न छाड्यो"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"क्यामेरा र माइक्रोफोनले रेकर्ड गर्न छाडे"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"स्क्रिन रेकर्ड गर्न थालियो"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"स्क्रिन रेकर्ड गर्न छाडियो"</string> </resources> diff --git a/packages/SystemUI/res/values-nl/strings_tv.xml b/packages/SystemUI/res/values-nl/strings_tv.xml index 78a8bf05995f..e018d97af62b 100644 --- a/packages/SystemUI/res/values-nl/strings_tv.xml +++ b/packages/SystemUI/res/values-nl/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Microfoon neemt niet meer op"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Camera neemt niet meer op"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Camera en microfoon nemen niet meer op"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Schermopname gestart"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Schermopname gestopt"</string> </resources> diff --git a/packages/SystemUI/res/values-or/strings_tv.xml b/packages/SystemUI/res/values-or/strings_tv.xml index bc53861f4d2e..178bd4b87311 100644 --- a/packages/SystemUI/res/values-or/strings_tv.xml +++ b/packages/SystemUI/res/values-or/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"ମାଇକ୍ରୋଫୋନ୍ ରେକର୍ଡିଂ ବନ୍ଦ କରିଛି"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"କ୍ୟାମେରା ରେକର୍ଡିଂ ବନ୍ଦ କରିଛି"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"କ୍ୟାମେରା ଏବଂ ମାଇକ୍ରୋଫୋନ୍ ରେକର୍ଡିଂ ବନ୍ଦ କରିଛି"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"ସ୍କ୍ରିନ ରେକର୍ଡିଂ ଆରମ୍ଭ କରାଯାଇଛି"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"ସ୍କ୍ରିନ ରେକର୍ଡିଂ ବନ୍ଦ କରାଯାଇଛି"</string> </resources> diff --git a/packages/SystemUI/res/values-pa/strings.xml b/packages/SystemUI/res/values-pa/strings.xml index 141ab2b8275e..0ca2cde2b9ef 100644 --- a/packages/SystemUI/res/values-pa/strings.xml +++ b/packages/SystemUI/res/values-pa/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"ਕੈਮਰਾ"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ਫ਼ੋਨ ਕਰੋ"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"ਅਵਾਜ਼ੀ ਸਹਾਇਕ"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"ਵਾਲੇਟ"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR ਕੋਡ ਸਕੈਨਰ"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"ਅਣਲਾਕ ਕਰੋ"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"ਡੀਵਾਈਸ ਲਾਕ ਹੈ"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"ਡੈਮੋ ਮੋਡ ਦੇਖੋ"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"ਈਥਰਨੈਟ"</string> <string name="status_bar_alarm" msgid="87160847643623352">"ਅਲਾਰਮ"</string> - <string name="wallet_title" msgid="5369767670735827105">"ਵਾਲੇਟ"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"ਆਪਣੇ ਫ਼ੋਨ ਨਾਲ ਜ਼ਿਆਦਾ ਤੇਜ਼ ਅਤੇ ਜ਼ਿਆਦਾ ਸੁਰੱਖਿਅਤ ਖਰੀਦਾਂ ਕਰਨ ਲਈ ਸੈੱਟਅੱਪ ਕਰੋ"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"ਸਭ ਦਿਖਾਓ"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"ਖੋਲ੍ਹਣ ਲਈ ਟੈਪ ਕਰੋ"</string> diff --git a/packages/SystemUI/res/values-pa/strings_tv.xml b/packages/SystemUI/res/values-pa/strings_tv.xml index fd1159857556..4939a7390278 100644 --- a/packages/SystemUI/res/values-pa/strings_tv.xml +++ b/packages/SystemUI/res/values-pa/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਨੇ ਰਿਕਾਰਡ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"ਕੈਮਰੇ ਨੇ ਰਿਕਾਰਡ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"ਕੈਮਰੇ ਅਤੇ ਮਾਈਕ੍ਰੋਫ਼ੋਨ ਨੇ ਰਿਕਾਰਡ ਕਰਨਾ ਬੰਦ ਕਰ ਦਿੱਤਾ ਹੈ"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ ਸ਼ੁਰੂ ਹੋਈ"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"ਸਕ੍ਰੀਨ ਰਿਕਾਰਡਿੰਗ ਬੰਦ ਹੋਈ"</string> </resources> diff --git a/packages/SystemUI/res/values-pl/strings_tv.xml b/packages/SystemUI/res/values-pl/strings_tv.xml index f9d1426670b5..98db830317df 100644 --- a/packages/SystemUI/res/values-pl/strings_tv.xml +++ b/packages/SystemUI/res/values-pl/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon przestał rejestrować"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Aparat przestał rejestrować"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Aparat i mikrofon przestały rejestrować"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Rozpoczęto nagrywanie ekranu"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Zatrzymano nagrywanie ekranu"</string> </resources> diff --git a/packages/SystemUI/res/values-pt-rBR/strings_tv.xml b/packages/SystemUI/res/values-pt-rBR/strings_tv.xml index 80a241fc383c..6c5ff0c291ab 100644 --- a/packages/SystemUI/res/values-pt-rBR/strings_tv.xml +++ b/packages/SystemUI/res/values-pt-rBR/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"O microfone parou de gravar"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"A câmera parou de gravar"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"A câmera e o microfone pararam de gravar"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Gravação de tela iniciada"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Gravação de tela interrompida"</string> </resources> diff --git a/packages/SystemUI/res/values-pt-rPT/strings_tv.xml b/packages/SystemUI/res/values-pt-rPT/strings_tv.xml index bd7c762b04fa..c3e6c4314663 100644 --- a/packages/SystemUI/res/values-pt-rPT/strings_tv.xml +++ b/packages/SystemUI/res/values-pt-rPT/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"O microfone parou a gravação"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"A câmara parou a gravação"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"A câmara e o microfone pararam a gravação"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Gravação de ecrã iniciada"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Gravação de ecrã parada"</string> </resources> diff --git a/packages/SystemUI/res/values-pt/strings_tv.xml b/packages/SystemUI/res/values-pt/strings_tv.xml index 80a241fc383c..6c5ff0c291ab 100644 --- a/packages/SystemUI/res/values-pt/strings_tv.xml +++ b/packages/SystemUI/res/values-pt/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"O microfone parou de gravar"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"A câmera parou de gravar"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"A câmera e o microfone pararam de gravar"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Gravação de tela iniciada"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Gravação de tela interrompida"</string> </resources> diff --git a/packages/SystemUI/res/values-ro/strings.xml b/packages/SystemUI/res/values-ro/strings.xml index 3f9cc55e3d03..88f9963615c4 100644 --- a/packages/SystemUI/res/values-ro/strings.xml +++ b/packages/SystemUI/res/values-ro/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Cameră foto"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Telefon"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Asistent vocal"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Portofel"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Scanner de coduri QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Deblocați"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Dispozitiv blocat"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Afișați modul demonstrativ"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Alarmă"</string> - <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> + <string name="wallet_title" msgid="5369767670735827105">"Portofel"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Configurați pentru a face achiziții mai rapide și mai sigure cu telefonul dvs."</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Afișați-le pe toate"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Atingeți pentru a deschide"</string> diff --git a/packages/SystemUI/res/values-ro/strings_tv.xml b/packages/SystemUI/res/values-ro/strings_tv.xml index 86f5d2f2d9ca..991eef6d18ee 100644 --- a/packages/SystemUI/res/values-ro/strings_tv.xml +++ b/packages/SystemUI/res/values-ro/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Microfonul nu mai înregistrează"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Camera foto a oprit înregistrarea"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Camera foto și microfonul nu mai înregistrează"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Înregistrarea ecranului a început"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Înregistrarea ecranului s-a oprit"</string> </resources> diff --git a/packages/SystemUI/res/values-ru/strings_tv.xml b/packages/SystemUI/res/values-ru/strings_tv.xml index 2d4da9335dd0..e23558c182e4 100644 --- a/packages/SystemUI/res/values-ru/strings_tv.xml +++ b/packages/SystemUI/res/values-ru/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Запись с микрофона остановлена"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Запись с камеры остановлена"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Запись с камеры и микрофона остановлена"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Запись видео с экрана началась."</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Запись видео с экрана остановлена."</string> </resources> diff --git a/packages/SystemUI/res/values-si/strings.xml b/packages/SystemUI/res/values-si/strings.xml index b98c12ca1408..3c0d8392f829 100644 --- a/packages/SystemUI/res/values-si/strings.xml +++ b/packages/SystemUI/res/values-si/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"කැමරාව"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"දුරකථනය"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"හඬ සහාය"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"පසුම්බිය"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR කේත ස්කෑනරය"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"අඟුල අරින්න"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"උපාංගය අගුලු දමා ඇත"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"ආදර්ශන ප්රකාරය පෙන්වන්න"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethernet"</string> <string name="status_bar_alarm" msgid="87160847643623352">"එලාමය"</string> - <string name="wallet_title" msgid="5369767670735827105">"පසුම්බිය"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"ඔබගේ දුරකථනය සමඟ වඩා වේගවත්, වඩා සුරක්ෂිත මිලදී ගැනීම් සිදු කිරීමට සූදානම් වන්න"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"සියල්ල පෙන්වන්න"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"විවෘත කිරීමට තට්ටු කරන්න"</string> @@ -547,7 +547,7 @@ <string name="keyboard_key_dpad_left" msgid="8329738048908755640">"වම්"</string> <string name="keyboard_key_dpad_right" msgid="6282105433822321767">"දකුණු"</string> <string name="keyboard_key_dpad_center" msgid="4079412840715672825">"මැද"</string> - <string name="keyboard_key_tab" msgid="4592772350906496730">"Tab යතුර"</string> + <string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string> <string name="keyboard_key_space" msgid="6980847564173394012">"ඉඩ යතුර"</string> <string name="keyboard_key_enter" msgid="8633362970109751646">"Enter යතුර"</string> <string name="keyboard_key_backspace" msgid="4095278312039628074">"Backspace යතුර"</string> diff --git a/packages/SystemUI/res/values-si/strings_tv.xml b/packages/SystemUI/res/values-si/strings_tv.xml index 551804df320c..1eaa24a4a4f3 100644 --- a/packages/SystemUI/res/values-si/strings_tv.xml +++ b/packages/SystemUI/res/values-si/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"මයික්රෆෝනය පටිගත කිරීම නැවැත්වීය"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"කැමරාව පටිගත කිරීම නැවැත්වීය"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"කැමරාව සහ මයික්රෆෝනය පටිගත කිරීම නැවැත්වීය"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"තිර පටිගත කිරීම ආරම්භ විය"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"තිර පටිගත කිරීම නතර විය"</string> </resources> diff --git a/packages/SystemUI/res/values-sk/strings_tv.xml b/packages/SystemUI/res/values-sk/strings_tv.xml index 0088476efef2..a7479aa83079 100644 --- a/packages/SystemUI/res/values-sk/strings_tv.xml +++ b/packages/SystemUI/res/values-sk/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofón prestal nahrávať"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera prestala nahrávať"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera a mikrofón prestali nahrávať"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Nahrávanie obrazovky bolo spustené"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Nahrávanie obrazovky bolo zastavené"</string> </resources> diff --git a/packages/SystemUI/res/values-sl/strings_tv.xml b/packages/SystemUI/res/values-sl/strings_tv.xml index 65fde6e95fe5..765b590bdcfb 100644 --- a/packages/SystemUI/res/values-sl/strings_tv.xml +++ b/packages/SystemUI/res/values-sl/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Ustavljeno snemanje z mikrofonom"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Ustavljeno snemanje s fotoaparatom"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Ustavljeno snemanje s fotoaparatom in mikrofonom"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Snemanje zaslona se je začelo."</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Snemanje zaslona je ustavljeno."</string> </resources> diff --git a/packages/SystemUI/res/values-sq/strings_tv.xml b/packages/SystemUI/res/values-sq/strings_tv.xml index b0b4930ab239..12b42b884a3c 100644 --- a/packages/SystemUI/res/values-sq/strings_tv.xml +++ b/packages/SystemUI/res/values-sq/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"\"Mikrofoni\" ndaloi së regjistruari"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"\"Kamera\" ndaloi së regjistruari"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"\"Kamera\" dhe \"Mikrofoni\" ndaluan së regjistruari"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Regjistrimi i ekranit filloi"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Regjistrimi i ekranit ndaloi"</string> </resources> diff --git a/packages/SystemUI/res/values-sr/strings.xml b/packages/SystemUI/res/values-sr/strings.xml index 7917aded4c1d..15d31bd073f0 100644 --- a/packages/SystemUI/res/values-sr/strings.xml +++ b/packages/SystemUI/res/values-sr/strings.xml @@ -94,7 +94,7 @@ <string name="screenrecord_channel_description" msgid="4147077128486138351">"Обавештење о сесији снимања екрана је активно"</string> <string name="screenrecord_start_label" msgid="1750350278888217473">"Желите да започнете снимање?"</string> <string name="screenrecord_description" msgid="1123231719680353736">"Током снимања Android систем може да сними осетљиве информације које су видљиве на екрану или које се пуштају на уређају. То обухвата лозинке, информације о плаћању, слике, поруке и звук."</string> - <string name="screenrecord_audio_label" msgid="6183558856175159629">"Сними звук"</string> + <string name="screenrecord_audio_label" msgid="6183558856175159629">"Снимај звук"</string> <string name="screenrecord_device_audio_label" msgid="9016927171280567791">"Звук уређаја"</string> <string name="screenrecord_device_audio_description" msgid="4922694220572186193">"Звук са уређаја, на пример, музика, позиви и мелодије звона"</string> <string name="screenrecord_mic_label" msgid="2111264835791332350">"Микрофон"</string> diff --git a/packages/SystemUI/res/values-sr/strings_tv.xml b/packages/SystemUI/res/values-sr/strings_tv.xml index 728132c0a216..85c38ca56d91 100644 --- a/packages/SystemUI/res/values-sr/strings_tv.xml +++ b/packages/SystemUI/res/values-sr/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Снимање микрофоном је заустављено"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Снимање камером је заустављено"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Снимање камером и микрофоном је заустављено"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Снимање екрана је започето"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Снимање екрана је заустављено"</string> </resources> diff --git a/packages/SystemUI/res/values-sv/strings_tv.xml b/packages/SystemUI/res/values-sv/strings_tv.xml index b184d5a91f3d..683043664930 100644 --- a/packages/SystemUI/res/values-sv/strings_tv.xml +++ b/packages/SystemUI/res/values-sv/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofonen slutade spela in"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kameran slutade spela in"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kameran och mikrofonen slutade spelade in"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Skärminspelningen har startats"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Skärminspelningen har stoppats"</string> </resources> diff --git a/packages/SystemUI/res/values-sw/strings.xml b/packages/SystemUI/res/values-sw/strings.xml index 46738831aeb7..6c8e02f3de8e 100644 --- a/packages/SystemUI/res/values-sw/strings.xml +++ b/packages/SystemUI/res/values-sw/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"Kamera"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"Simu"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"Mapendekezo ya Sauti"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Pochi"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"Kichanganuzi cha Msimbo wa QR"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"Fungua"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"Kifaa kimefungwa"</string> @@ -404,7 +404,7 @@ <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Msimamizi wako amewasha kumbukumbu ya kuingia mtandaoni ambayo hufuatilia shughuli kwenye wasifu wako wa kazini ila si kwenye wasifu wako wa binafsi."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"Kifaa hiki kimeunganishwa kwenye intaneti kupitia <xliff:g id="VPN_APP">%1$s</xliff:g>. Shughuli zako za mtandaoni kwenye programu za kazini, ikijumuisha barua pepe na data ya kuvinjari, zinaonekana kwa msimamizi wako wa TEHAMA na mtoa huduma wa VPN."</string> <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Kifaa hiki kimeunganishwa kwenye intaneti kupitia <xliff:g id="VPN_APP_0">%1$s</xliff:g> na <xliff:g id="VPN_APP_1">%2$s</xliff:g>. Shughuli zako za mtandaoni kwenye programu za kazini, ikijumuisha barua pepe na data ya kuvinjari, zinaonekana kwa msimamizi wako wa TEHAMA na mtoa huduma wa VPN."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Programu zako za kazini zimeunganishwa kwenye intaneti kupitia<xliff:g id="VPN_APP">%1$s</xliff:g>. Shughuli zako za mtandaoni kwenye programu za kazini, ikijumuisha barua pepe na data ya kuvinjari, zinaonekana kwa msimamizi wako TEHAMA na mtoa huduma wa VPN."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Programu zako za kazini zimeunganishwa kwenye intaneti kupitia <xliff:g id="VPN_APP">%1$s</xliff:g>. Shughuli zako za mtandaoni kwenye programu za kazini, ikijumuisha barua pepe na data ya kuvinjari, zinaonekana kwa msimamizi wako TEHAMA na mtoa huduma wa VPN."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Programu zako binafsi zimeunganishwa kwenye intaneti kupitia <xliff:g id="VPN_APP">%1$s</xliff:g>. Shughuli zako za mtandaoni kwenye programu za kazini, ikijumuisha barua pepe na data ya kuvinjari, zinaonekana kwa mtoa huduma wako wa VPN."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"Fungua mipangilio ya VPN"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"Onyesha hali ya onyesho"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"Ethaneti"</string> <string name="status_bar_alarm" msgid="87160847643623352">"Kengele"</string> - <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> + <string name="wallet_title" msgid="5369767670735827105">"Pochi"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"Weka njia ya kulipa ili uweze kununua kwa njia salama na haraka zaidi ukitumia simu yako"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"Onyesha zote"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"Gusa ili ufungue"</string> diff --git a/packages/SystemUI/res/values-sw/strings_tv.xml b/packages/SystemUI/res/values-sw/strings_tv.xml index e2cee4ac0104..f3e2ca295039 100644 --- a/packages/SystemUI/res/values-sw/strings_tv.xml +++ b/packages/SystemUI/res/values-sw/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Maikrofoni imeacha kurekodi"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera imeacha kurekodi"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera na Maikrofoni zimeacha kurekodi"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Imeanza kurekodi skrini"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Imeacha kurekodi skrini"</string> </resources> diff --git a/packages/SystemUI/res/values-ta/strings.xml b/packages/SystemUI/res/values-ta/strings.xml index de44fecbf7fe..36767ea2d407 100644 --- a/packages/SystemUI/res/values-ta/strings.xml +++ b/packages/SystemUI/res/values-ta/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"கேமரா"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ஃபோன்"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"குரல் உதவி"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"வாலட்"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR குறியீடு ஸ்கேனர்"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"அன்லாக் செய்"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"சாதனம் பூட்டப்பட்டுள்ளது"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"டெமோ முறையைக் காட்டு"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"ஈதர்நெட்"</string> <string name="status_bar_alarm" msgid="87160847643623352">"அலாரம்"</string> - <string name="wallet_title" msgid="5369767670735827105">"வாலட்"</string> + <string name="wallet_title" msgid="5369767670735827105">"Wallet"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"மொபைல் மூலம் விரைவாகவும் பாதுகாப்பாகவும் பர்ச்சேஸ்கள் செய்ய பேமெண்ட் முறையை அமைக்கவும்"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"அனைத்தையும் காட்டு"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"திறக்க தட்டவும்"</string> diff --git a/packages/SystemUI/res/values-ta/strings_tv.xml b/packages/SystemUI/res/values-ta/strings_tv.xml index 8982955fc297..3e0baf644cb0 100644 --- a/packages/SystemUI/res/values-ta/strings_tv.xml +++ b/packages/SystemUI/res/values-ta/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"மைக்ரோஃபோன் ரெக்கார்டு செய்வதை நிறுத்திவிட்டது"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"கேமரா ரெக்கார்டு செய்வதை நிறுத்திவிட்டது"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"கேமராவும் மைக்ரோஃபோனும் ரெக்கார்டு செய்வதை நிறுத்திவிட்டன"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"ஸ்கிரீன் ரெக்கார்டிங் தொடங்கியது"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"ஸ்கிரீன் ரெக்கார்டிங் நிறுத்தப்பட்டது"</string> </resources> diff --git a/packages/SystemUI/res/values-te/strings.xml b/packages/SystemUI/res/values-te/strings.xml index 940303607612..4d124f5ed6e7 100644 --- a/packages/SystemUI/res/values-te/strings.xml +++ b/packages/SystemUI/res/values-te/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"కెమెరా"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"ఫోన్"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"వాయిస్ అసిస్టెంట్"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"వాలెట్"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"Wallet"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR కోడ్ స్కానర్"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"అన్లాక్ చేయి"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"పరికరం లాక్ చేయబడింది"</string> @@ -515,7 +515,7 @@ <string name="no_shortcut" msgid="8257177117568230126">"<xliff:g id="APP_NAME">%1$s</xliff:g> సంభాషణ ఫీచర్లను సపోర్ట్ చేయదు"</string> <string name="notification_unblockable_desc" msgid="2073030886006190804">"ఈ నోటిఫికేషన్లను సవరించడం వీలుపడదు."</string> <string name="notification_unblockable_call_desc" msgid="5907328164696532169">"కాల్ నోటిఫికేషన్లను ఎడిట్ చేయడం సాధ్యం కాదు."</string> - <string name="notification_multichannel_desc" msgid="7414593090056236179">"ఈ నోటిఫికేషన్ల సమూహాన్ని ఇక్కడ కాన్ఫిగర్ చేయలేము"</string> + <string name="notification_multichannel_desc" msgid="7414593090056236179">"ఈ నోటిఫికేషన్ల గ్రూప్ను ఇక్కడ కాన్ఫిగర్ చేయలేము"</string> <string name="notification_delegate_header" msgid="1264510071031479920">"ప్రాక్సీ చేయబడిన నోటిఫికేషన్"</string> <string name="notification_channel_dialog_title" msgid="6856514143093200019">"అన్ని <xliff:g id="APP_NAME">%1$s</xliff:g> నోటిఫికేషన్లు"</string> <string name="see_more_title" msgid="7409317011708185729">"మరిన్ని చూడండి"</string> diff --git a/packages/SystemUI/res/values-te/strings_tv.xml b/packages/SystemUI/res/values-te/strings_tv.xml index bb216d75c99b..2131064b3847 100644 --- a/packages/SystemUI/res/values-te/strings_tv.xml +++ b/packages/SystemUI/res/values-te/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"మైక్రోఫోన్ రికార్డింగ్ చేయడం ఆపివేసింది"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"రికార్డింగ్ చేయడాన్ని కెమెరా ఆపివేసింది"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"కెమెరా, మైక్రోఫోన్లు రికార్డింగ్ చేయడం ఆపివేశాయి"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"స్క్రీన్ రికార్డింగ్ ప్రారంభమైంది"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"స్క్రీన్ రికార్డింగ్ ఆపివేయబడింది"</string> </resources> diff --git a/packages/SystemUI/res/values-th/strings.xml b/packages/SystemUI/res/values-th/strings.xml index 74affb608722..8daf4b58e747 100644 --- a/packages/SystemUI/res/values-th/strings.xml +++ b/packages/SystemUI/res/values-th/strings.xml @@ -373,7 +373,7 @@ <string name="quick_settings_disclosure_management_monitoring" msgid="8231336875820702180">"องค์กรของคุณเป็นเจ้าของอุปกรณ์นี้และอาจตรวจสอบการจราจรของข้อมูลในเครือข่าย"</string> <string name="quick_settings_disclosure_named_management_monitoring" msgid="2831423806103479812">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> เป็นเจ้าของอุปกรณ์นี้และอาจตรวจสอบการจราจรของข้อมูลในเครือข่าย"</string> <string name="quick_settings_financed_disclosure_named_management" msgid="2307703784594859524">"อุปกรณ์นี้ให้บริการโดย <xliff:g id="ORGANIZATION_NAME">%s</xliff:g>"</string> - <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"อุปกรณ์นี้เป็นขององค์กรและเชื่อมต่ออินเทอร์เน็ตผ่าน<xliff:g id="VPN_APP">%1$s</xliff:g>"</string> + <string name="quick_settings_disclosure_management_named_vpn" msgid="4137564460025113168">"อุปกรณ์นี้เป็นขององค์กรและเชื่อมต่ออินเทอร์เน็ตผ่าน <xliff:g id="VPN_APP">%1$s</xliff:g>"</string> <string name="quick_settings_disclosure_named_management_named_vpn" msgid="2169227918166358741">"อุปกรณ์นี้เป็นของ <xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> และเชื่อมต่ออินเทอร์เน็ตผ่าน<xliff:g id="VPN_APP">%2$s</xliff:g>"</string> <string name="quick_settings_disclosure_management" msgid="5515296598440684962">"องค์กรของคุณเป็นเจ้าของอุปกรณ์นี้"</string> <string name="quick_settings_disclosure_named_management" msgid="3476472755775165827">"<xliff:g id="ORGANIZATION_NAME">%1$s</xliff:g> เป็นเจ้าของอุปกรณ์นี้"</string> @@ -403,8 +403,8 @@ <string name="monitoring_description_management_network_logging" msgid="216983105036994771">"ผู้ดูแลระบบได้เปิดการบันทึกกิจกรรมของเครือข่าย ซึ่งจะตรวจสอบการรับส่งข้อมูลในอุปกรณ์ของคุณ"</string> <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"ผู้ดูแลระบบได้เปิดการบันทึกกิจกรรมของเครือข่าย ซึ่งจะตรวจสอบการรับส่งข้อมูลในโปรไฟล์งานแต่ไม่ตรวจสอบในโปรไฟล์ส่วนตัวของคุณ"</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"อุปกรณ์นี้เชื่อมต่ออินเทอร์เน็ตผ่าน<xliff:g id="VPN_APP">%1$s</xliff:g> ผู้ดูแลระบบไอทีสามารถดูกิจกรรมที่คุณทำในเครือข่ายรวมถึงอีเมลและข้อมูลการท่องเว็บได้"</string> - <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"อุปกรณ์นี้เชื่อมต่ออินเทอร์เน็ตผ่าน<xliff:g id="VPN_APP_0">%1$s</xliff:g> และ<xliff:g id="VPN_APP_1">%2$s</xliff:g> ผู้ดูแลระบบไอทีสามารถดูกิจกรรมที่คุณทำในเครือข่ายรวมถึงอีเมลและข้อมูลการท่องเว็บได้"</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"แอปงานเชื่อมต่ออินเทอร์เน็ตผ่าน<xliff:g id="VPN_APP">%1$s</xliff:g> ผู้ดูแลระบบไอทีและผู้ให้บริการ VPN สามารถดูกิจกรรมที่คุณทำในเครือข่ายในแอปงานได้ ซึ่งรวมถึงอีเมลและข้อมูลการท่องเว็บ"</string> + <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"อุปกรณ์นี้เชื่อมต่ออินเทอร์เน็ตผ่าน <xliff:g id="VPN_APP_0">%1$s</xliff:g> และ <xliff:g id="VPN_APP_1">%2$s</xliff:g> ผู้ดูแลระบบไอทีสามารถดูกิจกรรมที่คุณทำในเครือข่าย ซึ่งรวมถึงอีเมลและข้อมูลการท่องเว็บได้"</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"แอปงานเชื่อมต่ออินเทอร์เน็ตผ่าน <xliff:g id="VPN_APP">%1$s</xliff:g> ผู้ดูแลระบบไอทีและผู้ให้บริการ VPN สามารถดูกิจกรรมที่คุณทำในเครือข่ายในแอปงานได้ ซึ่งรวมถึงอีเมลและข้อมูลการท่องเว็บ"</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"แอปส่วนตัวเชื่อมต่ออินเทอร์เน็ตผ่าน<xliff:g id="VPN_APP">%1$s</xliff:g> ผู้ให้บริการ VPN สามารถดูกิจกรรมที่คุณทำในเครือข่ายซึ่งรวมถึงอีเมลและข้อมูลการท่องเว็บได้"</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"เปิดการตั้งค่า VPN"</string> diff --git a/packages/SystemUI/res/values-th/strings_tv.xml b/packages/SystemUI/res/values-th/strings_tv.xml index 5214e7ed31a4..1df261223ab2 100644 --- a/packages/SystemUI/res/values-th/strings_tv.xml +++ b/packages/SystemUI/res/values-th/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"ไมโครโฟนหยุดบันทึกแล้ว"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"กล้องหยุดบันทึกแล้ว"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"กล้องและไมโครโฟนหยุดบันทึกแล้ว"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"เริ่มบันทึกหน้าจอแล้ว"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"หยุดการบันทึกหน้าจอแล้ว"</string> </resources> diff --git a/packages/SystemUI/res/values-tl/strings_tv.xml b/packages/SystemUI/res/values-tl/strings_tv.xml index 10cf1c30f341..890ccd40b44b 100644 --- a/packages/SystemUI/res/values-tl/strings_tv.xml +++ b/packages/SystemUI/res/values-tl/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Huminto sa pag-record ang Mikropono"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Huminto sa pag-record ang Camera"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Huminto sa pag-record ang Camera at Mikropono"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Sinimulan ang pag-record ng screen"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Itinigil ang pag-record ng screen"</string> </resources> diff --git a/packages/SystemUI/res/values-tr/strings_tv.xml b/packages/SystemUI/res/values-tr/strings_tv.xml index 4053c2952aa5..f981aa2576c3 100644 --- a/packages/SystemUI/res/values-tr/strings_tv.xml +++ b/packages/SystemUI/res/values-tr/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon kaydı durdu"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera kaydı durdu"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera ve Mikrofon kaydı durdu"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Ekran kaydı başladı"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Ekran kaydı durduruldu"</string> </resources> diff --git a/packages/SystemUI/res/values-uk/strings_tv.xml b/packages/SystemUI/res/values-uk/strings_tv.xml index 070f8e9ff2f7..8b96aac43111 100644 --- a/packages/SystemUI/res/values-uk/strings_tv.xml +++ b/packages/SystemUI/res/values-uk/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Мікрофон припинив запис"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Камера припинила запис"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Камера й мікрофон припинили запис"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Запис відео з екрана розпочато"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Запис відео з екрана зупинено"</string> </resources> diff --git a/packages/SystemUI/res/values-ur/strings_tv.xml b/packages/SystemUI/res/values-ur/strings_tv.xml index a378537c3fbc..ed186ac2c3d8 100644 --- a/packages/SystemUI/res/values-ur/strings_tv.xml +++ b/packages/SystemUI/res/values-ur/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"مائیکروفون نے ریکارڈ کرنا بند کر دیا"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"کیمرے نے ریکارڈ کرنا بند کر دیا"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"کیمرے اور مائیکروفون نے ریکارڈ کرنا بند کر دیا"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"اسکرین ریکارڈنگ شروع ہو گئی"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"اسکرین ریکارڈنگ بند کر دی گئی"</string> </resources> diff --git a/packages/SystemUI/res/values-uz/strings_tv.xml b/packages/SystemUI/res/values-uz/strings_tv.xml index 7df61f351b17..c34ee4f0601b 100644 --- a/packages/SystemUI/res/values-uz/strings_tv.xml +++ b/packages/SystemUI/res/values-uz/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Mikrofon yozib olishni toʻxtatdi"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Kamera yozib olishni toʻxtatdi"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Kamera va mikrofon yozib olishni toʻxtatdi"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Ekrandan yozib olish boshlandi"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Ekrandan yozib olish toʻxtatildi"</string> </resources> diff --git a/packages/SystemUI/res/values-vi/strings.xml b/packages/SystemUI/res/values-vi/strings.xml index 9d62d655b4b1..7df433910076 100644 --- a/packages/SystemUI/res/values-vi/strings.xml +++ b/packages/SystemUI/res/values-vi/strings.xml @@ -404,7 +404,7 @@ <string name="monitoring_description_managed_profile_network_logging" msgid="6932303843097006037">"Quản trị viên của bạn đã bật tính năng ghi nhật ký mạng. Tính năng này giám sát lưu lượng truy cập trong hồ sơ công việc chứ không giám sát lưu lượng truy cập trong hồ sơ cá nhân của bạn."</string> <string name="monitoring_description_named_vpn" msgid="7502657784155456414">"Thiết bị này được kết nối với Internet thông qua <xliff:g id="VPN_APP">%1$s</xliff:g>. Hoạt động mạng bao gồm email và dữ liệu duyệt web sẽ được hiển thị cho quản trị viên CNTT."</string> <string name="monitoring_description_two_named_vpns" msgid="6726394451199620634">"Thiết bị này được kết nối với Internet thông qua <xliff:g id="VPN_APP_0">%1$s</xliff:g> và <xliff:g id="VPN_APP_1">%2$s</xliff:g>. Hoạt động mạng bao gồm email và dữ liệu duyệt web sẽ được hiển thị cho quản trị viên CNTT."</string> - <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Ứng dụng công việc của bạn được kết nối với Internet thông qua <xliff:g id="VPN_APP">%1$s</xliff:g>. Hoạt động mạng trong các ứng dụng công việc, bao gồm email và dữ liệu duyệt web sẽ được hiển thị cho quản trị viên CNTT và nhà cung cấp VPN."</string> + <string name="monitoring_description_managed_profile_named_vpn" msgid="7254359257263069766">"Ứng dụng công việc của bạn được kết nối với Internet thông qua <xliff:g id="VPN_APP">%1$s</xliff:g>. Hoạt động mạng trong các ứng dụng công việc, bao gồm cả email và dữ liệu duyệt web, sẽ được hiển thị cho quản trị viên CNTT và nhà cung cấp VPN của bạn."</string> <string name="monitoring_description_personal_profile_named_vpn" msgid="5083909710727365452">"Ứng dụng cá nhân được kết nối với Internet thông qua <xliff:g id="VPN_APP">%1$s</xliff:g>. Hoạt động mạng của bạn, bao gồm email và dữ liệu duyệt web, được hiển thị cho nhà cung cấp VPN."</string> <string name="monitoring_description_vpn_settings_separator" msgid="8292589617720435430">" "</string> <string name="monitoring_description_vpn_settings" msgid="5264167033247632071">"Mở phần cài đặt VPN"</string> diff --git a/packages/SystemUI/res/values-vi/strings_tv.xml b/packages/SystemUI/res/values-vi/strings_tv.xml index 4c53364aaca8..b140fc087598 100644 --- a/packages/SystemUI/res/values-vi/strings_tv.xml +++ b/packages/SystemUI/res/values-vi/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Micrô đã dừng ghi"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Máy ảnh đã dừng ghi"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Máy ảnh và micrô đã dừng ghi"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Đã bắt đầu ghi màn hình"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Đã dừng ghi màn hình"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rCN/strings_tv.xml b/packages/SystemUI/res/values-zh-rCN/strings_tv.xml index b5bcd807a967..ad4d94b04f1a 100644 --- a/packages/SystemUI/res/values-zh-rCN/strings_tv.xml +++ b/packages/SystemUI/res/values-zh-rCN/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"麦克风已停止录制"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"相机已停止录制"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"相机和麦克风已停止录制"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"已开始录制屏幕"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"已停止录制屏幕"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rHK/strings.xml b/packages/SystemUI/res/values-zh-rHK/strings.xml index 9db8645ed8f6..2ac494a20db5 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings.xml @@ -118,7 +118,7 @@ <string name="accessibility_camera_button" msgid="2938898391716647247">"相機"</string> <string name="accessibility_phone_button" msgid="4256353121703100427">"電話"</string> <string name="accessibility_voice_assist_button" msgid="6497706615649754510">"語音助手"</string> - <string name="accessibility_wallet_button" msgid="1458258783460555507">"電子錢包"</string> + <string name="accessibility_wallet_button" msgid="1458258783460555507">"錢包"</string> <string name="accessibility_qr_code_scanner_button" msgid="7521277927692910795">"QR 碼掃瞄器"</string> <string name="accessibility_unlock_button" msgid="122785427241471085">"解鎖"</string> <string name="accessibility_lock_icon" msgid="661492842417875775">"裝置已上鎖"</string> @@ -463,7 +463,7 @@ <string name="show_demo_mode" msgid="3677956462273059726">"顯示示範模式"</string> <string name="status_bar_ethernet" msgid="5690979758988647484">"以太網"</string> <string name="status_bar_alarm" msgid="87160847643623352">"鬧鐘"</string> - <string name="wallet_title" msgid="5369767670735827105">"電子錢包"</string> + <string name="wallet_title" msgid="5369767670735827105">"錢包"</string> <string name="wallet_empty_state_label" msgid="7776761245237530394">"完成設定後即可透過手機更快速安全地購物"</string> <string name="wallet_app_button_label" msgid="7123784239111190992">"顯示全部"</string> <string name="wallet_secondary_label_no_card" msgid="8488069304491125713">"輕按即可開啟"</string> diff --git a/packages/SystemUI/res/values-zh-rHK/strings_tv.xml b/packages/SystemUI/res/values-zh-rHK/strings_tv.xml index c5e757e424fd..88ec5e0e41f4 100644 --- a/packages/SystemUI/res/values-zh-rHK/strings_tv.xml +++ b/packages/SystemUI/res/values-zh-rHK/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"麥克風已停止錄音"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"相機已停止錄影"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"相機和麥克風已停止錄影及錄音"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"已開始錄製螢幕畫面"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"已停止錄製螢幕畫面"</string> </resources> diff --git a/packages/SystemUI/res/values-zh-rTW/strings.xml b/packages/SystemUI/res/values-zh-rTW/strings.xml index 45f67f6d8295..a0fe941eb5a6 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings.xml @@ -547,7 +547,7 @@ <string name="keyboard_key_dpad_left" msgid="8329738048908755640">"向左鍵"</string> <string name="keyboard_key_dpad_right" msgid="6282105433822321767">"向右鍵"</string> <string name="keyboard_key_dpad_center" msgid="4079412840715672825">"中央鍵"</string> - <string name="keyboard_key_tab" msgid="4592772350906496730">"Tab 鍵"</string> + <string name="keyboard_key_tab" msgid="4592772350906496730">"Tab"</string> <string name="keyboard_key_space" msgid="6980847564173394012">"空格鍵"</string> <string name="keyboard_key_enter" msgid="8633362970109751646">"Enter 鍵"</string> <string name="keyboard_key_backspace" msgid="4095278312039628074">"Backspace 鍵"</string> diff --git a/packages/SystemUI/res/values-zh-rTW/strings_tv.xml b/packages/SystemUI/res/values-zh-rTW/strings_tv.xml index 592ccae1ce68..b6b1b1e84aa1 100644 --- a/packages/SystemUI/res/values-zh-rTW/strings_tv.xml +++ b/packages/SystemUI/res/values-zh-rTW/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"麥克風已停止錄音"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"相機已停止錄影"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"相機和麥克風已停止錄影及錄音"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"已開始錄製螢幕畫面"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"已停止錄製螢幕畫面"</string> </resources> diff --git a/packages/SystemUI/res/values-zu/strings_tv.xml b/packages/SystemUI/res/values-zu/strings_tv.xml index f0b3c5a8a8b1..59fcb8d89a2e 100644 --- a/packages/SystemUI/res/values-zu/strings_tv.xml +++ b/packages/SystemUI/res/values-zu/strings_tv.xml @@ -30,8 +30,6 @@ <string name="mic_stopped_recording_announcement" msgid="7301537004900721242">"Imakrofoni iyekile ukurekhoda"</string> <string name="camera_stopped_recording_announcement" msgid="8540496432367032801">"Ikhamera iyeke ukurekhoda"</string> <string name="mic_camera_stopped_recording_announcement" msgid="8708524579599977412">"Ikhemera nemakrofoni kuyekile ukurekhoda"</string> - <!-- no translation found for screen_recording_announcement (2996750593472241520) --> - <skip /> - <!-- no translation found for screen_stopped_recording_announcement (979749439036681416) --> - <skip /> + <string name="screen_recording_announcement" msgid="2996750593472241520">"Ukurekhoda isikrini kuqalile"</string> + <string name="screen_stopped_recording_announcement" msgid="979749439036681416">"Ukurekhoda isikrini kumisiwe"</string> </resources> diff --git a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java index 550f393f4ca3..ab30db297fce 100644 --- a/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +++ b/packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java @@ -54,6 +54,7 @@ import android.graphics.Color; import android.graphics.drawable.Drawable; import android.media.AudioManager; import android.os.Binder; +import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; @@ -1044,7 +1045,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @Override public boolean showBeforeProvisioning() { - return false; + return Build.isDebuggable() && mGlobalSettings.getInt( + Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0; } } diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt index 3cc99a8ef77e..e95976f555f8 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/ChipInfoCommon.kt @@ -27,4 +27,4 @@ interface ChipInfoCommon { fun getTimeoutMs(): Long } -const val DEFAULT_TIMEOUT_MILLIS = 3000L +const val DEFAULT_TIMEOUT_MILLIS = 4000L diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt index 7cc52e428218..fe1ac80e24df 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommon.kt @@ -31,6 +31,10 @@ import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.view.WindowManager +import android.view.accessibility.AccessibilityManager +import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_CONTROLS +import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_ICONS +import android.view.accessibility.AccessibilityManager.FLAG_CONTENT_TEXT import android.widget.LinearLayout import com.android.internal.widget.CachingIconView import com.android.settingslib.Utils @@ -56,6 +60,7 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>( private val windowManager: WindowManager, private val viewUtil: ViewUtil, @Main private val mainExecutor: DelayableExecutor, + private val accessibilityManager: AccessibilityManager, private val tapGestureDetector: TapGestureDetector, private val powerManager: PowerManager, @LayoutRes private val chipLayoutRes: Int @@ -110,10 +115,16 @@ abstract class MediaTttChipControllerCommon<T : ChipInfoCommon>( } // Cancel and re-set the chip timeout each time we get a new state. + val timeout = accessibilityManager.getRecommendedTimeoutMillis( + chipInfo.getTimeoutMs().toInt(), + // Not all chips have controls so FLAG_CONTENT_CONTROLS might be superfluous, but + // include it just to be safe. + FLAG_CONTENT_ICONS or FLAG_CONTENT_TEXT or FLAG_CONTENT_CONTROLS + ) cancelChipViewTimeout?.run() cancelChipViewTimeout = mainExecutor.executeDelayed( { removeChip(MediaTttRemovalReason.REASON_TIMEOUT) }, - chipInfo.getTimeoutMs() + timeout.toLong() ) } diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt index 072263fcf38c..a5d763c5327b 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiver.kt @@ -26,6 +26,7 @@ import android.os.PowerManager import android.util.Log import android.view.ViewGroup import android.view.WindowManager +import android.view.accessibility.AccessibilityManager import com.android.systemui.R import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Main @@ -52,6 +53,7 @@ class MediaTttChipControllerReceiver @Inject constructor( windowManager: WindowManager, viewUtil: ViewUtil, mainExecutor: DelayableExecutor, + accessibilityManager: AccessibilityManager, tapGestureDetector: TapGestureDetector, powerManager: PowerManager, @Main private val mainHandler: Handler, @@ -62,6 +64,7 @@ class MediaTttChipControllerReceiver @Inject constructor( windowManager, viewUtil, mainExecutor, + accessibilityManager, tapGestureDetector, powerManager, R.layout.media_ttt_chip_receiver diff --git a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt index 54b4380e2443..943604cff887 100644 --- a/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt +++ b/packages/SystemUI/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSender.kt @@ -24,6 +24,7 @@ import android.util.Log import android.view.View import android.view.ViewGroup import android.view.WindowManager +import android.view.accessibility.AccessibilityManager import android.widget.TextView import com.android.internal.statusbar.IUndoMediaTransferCallback import com.android.systemui.R @@ -53,6 +54,7 @@ class MediaTttChipControllerSender @Inject constructor( windowManager: WindowManager, viewUtil: ViewUtil, @Main mainExecutor: DelayableExecutor, + accessibilityManager: AccessibilityManager, tapGestureDetector: TapGestureDetector, powerManager: PowerManager, private val uiEventLogger: MediaTttSenderUiEventLogger @@ -62,6 +64,7 @@ class MediaTttChipControllerSender @Inject constructor( windowManager, viewUtil, mainExecutor, + accessibilityManager, tapGestureDetector, powerManager, R.layout.media_ttt_chip diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt index f1dd5ffd2077..8179d1763ea1 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/BackPanelController.kt @@ -291,7 +291,8 @@ class BackPanelController private constructor( override fun onMotionEvent(event: MotionEvent) { backAnimation?.onBackMotion( - event, + event.x, + event.y, event.actionMasked, if (mView.isLeftPanel) BackEvent.EDGE_LEFT else BackEvent.EDGE_RIGHT ) diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/NavigationBarEdgePanel.java b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/NavigationBarEdgePanel.java index a74c59618c95..eba9d3fdcab8 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/NavigationBarEdgePanel.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/NavigationBarEdgePanel.java @@ -486,7 +486,7 @@ public class NavigationBarEdgePanel extends View implements NavigationEdgeBackPl public void onMotionEvent(MotionEvent event) { if (mBackAnimation != null) { mBackAnimation.onBackMotion( - event, + event.getX(), event.getY(), event.getActionMasked(), mIsLeftPanel ? BackEvent.EDGE_LEFT : BackEvent.EDGE_RIGHT); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java index 1ffa6f41d8a3..decc02c98b61 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/AlertingNotificationManager.java @@ -65,7 +65,7 @@ public abstract class AlertingNotificationManager implements NotificationLifetim * @param entry entry to show */ public void showNotification(@NonNull NotificationEntry entry) { - mLogger.logShowNotification(entry.getKey()); + mLogger.logShowNotification(entry); addAlertEntry(entry); updateNotification(entry.getKey(), true /* alert */); entry.setInterruption(); @@ -319,7 +319,7 @@ public abstract class AlertingNotificationManager implements NotificationLifetim * @param updatePostTime whether or not to refresh the post time */ public void updateEntry(boolean updatePostTime) { - mLogger.logUpdateEntry(mEntry.getKey(), updatePostTime); + mLogger.logUpdateEntry(mEntry, updatePostTime); long currentTime = mClock.currentTimeMillis(); mEarliestRemovaltime = currentTime + mMinimumDisplayTime; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java index 792ff8d20b97..f6a572ec6ce6 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ListDumper.java @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.notification.collection; +import static com.android.systemui.statusbar.notification.NotificationUtils.logKey; import static com.android.systemui.statusbar.notification.collection.NotifCollection.REASON_NOT_CANCELED; import static com.android.systemui.statusbar.notification.collection.NotificationEntry.DismissState.NOT_DISMISSED; @@ -52,7 +53,7 @@ public class ListDumper { sb, true, includeRecordKeeping, - interactionTracker.hasUserInteractedWith(entry.getKey())); + interactionTracker.hasUserInteractedWith(logKey(entry))); if (entry instanceof GroupEntry) { GroupEntry ge = (GroupEntry) entry; NotificationEntry summary = ge.getSummary(); @@ -63,7 +64,7 @@ public class ListDumper { sb, true, includeRecordKeeping, - interactionTracker.hasUserInteractedWith(summary.getKey())); + interactionTracker.hasUserInteractedWith(logKey(summary))); } List<NotificationEntry> children = ge.getChildren(); for (int childIndex = 0; childIndex < children.size(); childIndex++) { @@ -74,7 +75,7 @@ public class ListDumper { sb, true, includeRecordKeeping, - interactionTracker.hasUserInteractedWith(child.getKey())); + interactionTracker.hasUserInteractedWith(logKey(child))); } } } @@ -116,11 +117,11 @@ public class ListDumper { sb.append(indent) .append("[").append(index).append("] ") .append(index.length() == 1 ? " " : "") - .append(entry.getKey()); + .append(logKey(entry)); if (includeParent) { sb.append(" (parent=") - .append(entry.getParent() != null ? entry.getParent().getKey() : null) + .append(logKey(entry.getParent())) .append(")"); NotificationEntry notifEntry = entry.getRepresentativeEntry(); @@ -185,8 +186,8 @@ public class ListDumper { if (notifEntry.getAttachState().getSuppressedChanges().getParent() != null) { rksb.append("suppressedParent=") - .append(notifEntry.getAttachState().getSuppressedChanges() - .getParent().getKey()) + .append(logKey(notifEntry.getAttachState().getSuppressedChanges() + .getParent())) .append(" "); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java index 72aa89aa382d..54912461da1e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/NotifCollection.java @@ -267,13 +267,14 @@ public class NotifCollection implements Dumpable, PipelineDumpable { requireNonNull(stats); NotificationEntry storedEntry = mNotificationSet.get(entry.getKey()); if (storedEntry == null) { - mLogger.logNonExistentNotifDismissed(entry.getKey()); + mLogger.logNonExistentNotifDismissed(entry); continue; } if (entry != storedEntry) { throw mEulogizer.record( new IllegalStateException("Invalid entry: " - + "different stored and dismissed entries for " + entry.getKey())); + + "different stored and dismissed entries for " + logKey(entry) + + " stored=@" + Integer.toHexString(storedEntry.hashCode()))); } if (entry.getDismissState() == DISMISSED) { @@ -282,7 +283,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { updateDismissInterceptors(entry); if (isDismissIntercepted(entry)) { - mLogger.logNotifDismissedIntercepted(entry.getKey()); + mLogger.logNotifDismissedIntercepted(entry); continue; } @@ -299,7 +300,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { stats.notificationVisibility); } catch (RemoteException e) { // system process is dead if we're here. - mLogger.logRemoteExceptionOnNotificationClear(entry.getKey(), e); + mLogger.logRemoteExceptionOnNotificationClear(entry, e); } } } @@ -342,7 +343,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { // interceptors the chance to filter the notification updateDismissInterceptors(entry); if (isDismissIntercepted(entry)) { - mLogger.logNotifClearAllDismissalIntercepted(entry.getKey()); + mLogger.logNotifClearAllDismissalIntercepted(entry); } entries.remove(i); } @@ -363,7 +364,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { NotificationEntry entry = entries.get(i); entry.setDismissState(DISMISSED); - mLogger.logNotifDismissed(entry.getKey()); + mLogger.logNotifDismissed(entry); if (isCanceled(entry)) { canceledEntries.add(entry); @@ -416,12 +417,12 @@ public class NotifCollection implements Dumpable, PipelineDumpable { int reason) { Assert.isMainThread(); - mLogger.logNotifRemoved(sbn.getKey(), reason); + mLogger.logNotifRemoved(sbn, reason); final NotificationEntry entry = mNotificationSet.get(sbn.getKey()); if (entry == null) { // TODO (b/160008901): Throw an exception here - mLogger.logNoNotificationToRemoveWithKey(sbn.getKey(), reason); + mLogger.logNoNotificationToRemoveWithKey(sbn, reason); return; } @@ -464,7 +465,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { mEventQueue.add(new BindEntryEvent(entry, sbn)); mNotificationSet.put(sbn.getKey(), entry); - mLogger.logNotifPosted(sbn.getKey()); + mLogger.logNotifPosted(entry); mEventQueue.add(new EntryAddedEvent(entry)); } else { @@ -483,7 +484,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { entry.setSbn(sbn); mEventQueue.add(new BindEntryEvent(entry, sbn)); - mLogger.logNotifUpdated(sbn.getKey()); + mLogger.logNotifUpdated(entry); mEventQueue.add(new EntryUpdatedEvent(entry, true /* fromSystem */)); } } @@ -498,12 +499,12 @@ public class NotifCollection implements Dumpable, PipelineDumpable { if (mNotificationSet.get(entry.getKey()) != entry) { throw mEulogizer.record( new IllegalStateException("No notification to remove with key " - + entry.getKey())); + + logKey(entry))); } if (!isCanceled(entry)) { throw mEulogizer.record( - new IllegalStateException("Cannot remove notification " + entry.getKey() + new IllegalStateException("Cannot remove notification " + logKey(entry) + ": has not been marked for removal")); } @@ -514,7 +515,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { } if (!isLifetimeExtended(entry)) { - mLogger.logNotifReleased(entry.getKey()); + mLogger.logNotifReleased(entry); mNotificationSet.remove(entry.getKey()); cancelDismissInterception(entry); mEventQueue.add(new EntryRemovedEvent(entry, entry.mCancellationReason)); @@ -580,7 +581,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { } } } else { - mLogger.logRankingMissing(entry.getKey(), rankingMap); + mLogger.logRankingMissing(entry, rankingMap); } } } @@ -627,10 +628,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { extender.getName(), logKey, collectionEntryIs))); } - mLogger.logLifetimeExtensionEnded( - entry.getKey(), - extender, - entry.mLifetimeExtenders.size()); + mLogger.logLifetimeExtensionEnded(entry, extender, entry.mLifetimeExtenders.size()); if (!isLifetimeExtended(entry)) { if (tryRemoveNotification(entry)) { @@ -657,7 +655,7 @@ public class NotifCollection implements Dumpable, PipelineDumpable { mAmDispatchingToOtherCode = true; for (NotifLifetimeExtender extender : mLifetimeExtenders) { if (extender.maybeExtendLifetime(entry, entry.mCancellationReason)) { - mLogger.logLifetimeExtended(entry.getKey(), extender); + mLogger.logLifetimeExtended(entry, extender); entry.mLifetimeExtenders.add(extender); } } @@ -924,17 +922,17 @@ public class NotifCollection implements Dumpable, PipelineDumpable { // Make sure we have the notification to update NotificationEntry entry = mNotificationSet.get(sbn.getKey()); if (entry == null) { - mLogger.logNotifInternalUpdateFailed(sbn.getKey(), name, reason); + mLogger.logNotifInternalUpdateFailed(sbn, name, reason); return; } - mLogger.logNotifInternalUpdate(sbn.getKey(), name, reason); + mLogger.logNotifInternalUpdate(entry, name, reason); // First do the pieces of postNotification which are not about assuming the notification // was sent by the app entry.setSbn(sbn); mEventQueue.add(new BindEntryEvent(entry, sbn)); - mLogger.logNotifUpdated(sbn.getKey()); + mLogger.logNotifUpdated(entry); mEventQueue.add(new EntryUpdatedEvent(entry, false /* fromSystem */)); // Skip the applyRanking step and go straight to dispatching the events diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java index 083759c1d757..26d2ee349f50 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/ShadeListBuilder.java @@ -579,11 +579,7 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { if (existingSummary == null) { group.setSummary(entry); } else { - mLogger.logDuplicateSummary( - mIterationCount, - group.getKey(), - existingSummary.getKey(), - entry.getKey()); + mLogger.logDuplicateSummary(mIterationCount, group, existingSummary, entry); // Use whichever one was posted most recently if (entry.getSbn().getPostTime() @@ -1084,7 +1080,7 @@ public class ShadeListBuilder implements Dumpable, PipelineDumpable { if (!Objects.equals(curr, prev)) { mLogger.logEntryAttachStateChanged( mIterationCount, - entry.getKey(), + entry, prev.getParent(), curr.getParent()); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java index 8f37bafa45e6..023c4ef2b8b7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinator.java @@ -360,13 +360,13 @@ public class PreparationCoordinator implements Coordinator { } private void abortInflation(NotificationEntry entry, String reason) { - mLogger.logInflationAborted(entry.getKey(), reason); + mLogger.logInflationAborted(entry, reason); mNotifInflater.abortInflation(entry); mInflatingNotifs.remove(entry); } private void onInflationFinished(NotificationEntry entry, NotifViewController controller) { - mLogger.logNotifInflated(entry.getKey()); + mLogger.logNotifInflated(entry); mInflatingNotifs.remove(entry); mViewBarn.registerViewForEntry(entry, controller); mInflationStates.put(entry, STATE_INFLATED); @@ -398,20 +398,20 @@ public class PreparationCoordinator implements Coordinator { return false; } if (isBeyondGroupInitializationWindow(group, now)) { - mLogger.logGroupInflationTookTooLong(group.getKey()); + mLogger.logGroupInflationTookTooLong(group); return false; } if (mInflatingNotifs.contains(group.getSummary())) { - mLogger.logDelayingGroupRelease(group.getKey(), group.getSummary().getKey()); + mLogger.logDelayingGroupRelease(group, group.getSummary()); return true; } for (NotificationEntry child : group.getChildren()) { if (mInflatingNotifs.contains(child) && !child.wasAttachedInPreviousPass()) { - mLogger.logDelayingGroupRelease(group.getKey(), child.getKey()); + mLogger.logDelayingGroupRelease(group, child); return true; } } - mLogger.logDoneWaitingForGroupInflation(group.getKey()); + mLogger.logDoneWaitingForGroupInflation(group); return false; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt index f8352500923e..30f13152126c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/PreparationCoordinatorLogger.kt @@ -19,48 +19,51 @@ package com.android.systemui.statusbar.notification.collection.coordinator import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.statusbar.notification.collection.GroupEntry +import com.android.systemui.statusbar.notification.collection.NotificationEntry +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject class PreparationCoordinatorLogger @Inject constructor( @NotificationLog private val buffer: LogBuffer ) { - fun logNotifInflated(key: String) { + fun logNotifInflated(entry: NotificationEntry) { buffer.log(TAG, LogLevel.DEBUG, { - str1 = key + str1 = entry.logKey }, { "NOTIF INFLATED $str1" }) } - fun logInflationAborted(key: String, reason: String) { + fun logInflationAborted(entry: NotificationEntry, reason: String) { buffer.log(TAG, LogLevel.DEBUG, { - str1 = key + str1 = entry.logKey str2 = reason }, { "NOTIF INFLATION ABORTED $str1 reason=$str2" }) } - fun logDoneWaitingForGroupInflation(groupKey: String) { + fun logDoneWaitingForGroupInflation(group: GroupEntry) { buffer.log(TAG, LogLevel.DEBUG, { - str1 = groupKey + str1 = group.logKey }, { "Finished inflating all members of group $str1, releasing group" }) } - fun logGroupInflationTookTooLong(groupKey: String) { + fun logGroupInflationTookTooLong(group: GroupEntry) { buffer.log(TAG, LogLevel.WARNING, { - str1 = groupKey + str1 = group.logKey }, { "Group inflation took too long for $str1, releasing children early" }) } - fun logDelayingGroupRelease(groupKey: String, childKey: String) { + fun logDelayingGroupRelease(group: GroupEntry, child: NotificationEntry) { buffer.log(TAG, LogLevel.DEBUG, { - str1 = groupKey - str2 = childKey + str1 = group.logKey + str2 = child.logKey }, { "Delaying release of group $str1 because child $str2 is still inflating" }) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt index f8bf85f92eae..8d1759b8f475 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/listbuilder/ShadeListBuilderLogger.kt @@ -23,8 +23,10 @@ import com.android.systemui.log.LogLevel.WARNING import com.android.systemui.log.dagger.NotificationLog import com.android.systemui.statusbar.notification.collection.GroupEntry import com.android.systemui.statusbar.notification.collection.ListEntry +import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifPromoter +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject class ShadeListBuilderLogger @Inject constructor( @@ -110,12 +112,17 @@ class ShadeListBuilderLogger @Inject constructor( }) } - fun logDuplicateSummary(buildId: Int, groupKey: String, existingKey: String, newKey: String) { + fun logDuplicateSummary( + buildId: Int, + group: GroupEntry, + existingSummary: NotificationEntry, + newSummary: NotificationEntry + ) { buffer.log(TAG, WARNING, { long1 = buildId.toLong() - str1 = groupKey - str2 = existingKey - str3 = newKey + str1 = group.logKey + str2 = existingSummary.logKey + str3 = newSummary.logKey }, { """(Build $long1) Duplicate summary for group "$str1": "$str2" vs. "$str3"""" }) @@ -124,7 +131,7 @@ class ShadeListBuilderLogger @Inject constructor( fun logDuplicateTopLevelKey(buildId: Int, topLevelKey: String) { buffer.log(TAG, WARNING, { long1 = buildId.toLong() - str1 = topLevelKey + str1 = logKey(topLevelKey) }, { "(Build $long1) Duplicate top-level key: $str1" }) @@ -132,15 +139,15 @@ class ShadeListBuilderLogger @Inject constructor( fun logEntryAttachStateChanged( buildId: Int, - key: String, + entry: ListEntry, prevParent: GroupEntry?, newParent: GroupEntry? ) { buffer.log(TAG, INFO, { long1 = buildId.toLong() - str1 = key - str2 = prevParent?.key - str3 = newParent?.key + str1 = entry.logKey + str2 = prevParent?.logKey + str3 = newParent?.logKey }, { val action = if (str2 == null && str3 != null) { @@ -160,8 +167,8 @@ class ShadeListBuilderLogger @Inject constructor( fun logParentChanged(buildId: Int, prevParent: GroupEntry?, newParent: GroupEntry?) { buffer.log(TAG, INFO, { long1 = buildId.toLong() - str1 = prevParent?.key - str2 = newParent?.key + str1 = prevParent?.logKey + str2 = newParent?.logKey }, { if (str1 == null && str2 != null) { "(Build $long1) Parent is {$str2}" @@ -180,8 +187,8 @@ class ShadeListBuilderLogger @Inject constructor( ) { buffer.log(TAG, INFO, { long1 = buildId.toLong() - str1 = suppressedParent?.key - str2 = keepingParent?.key + str1 = suppressedParent?.logKey + str2 = keepingParent?.logKey }, { "(Build $long1) Change of parent to '$str1' suppressed; keeping parent '$str2'" }) @@ -193,7 +200,7 @@ class ShadeListBuilderLogger @Inject constructor( ) { buffer.log(TAG, INFO, { long1 = buildId.toLong() - str1 = keepingParent?.key + str1 = keepingParent?.logKey }, { "(Build $long1) Group pruning suppressed; keeping parent '$str1'" }) @@ -281,7 +288,7 @@ class ShadeListBuilderLogger @Inject constructor( val entry = entries[i] buffer.log(TAG, DEBUG, { int1 = i - str1 = entry.key + str1 = entry.logKey }, { "[$int1] $str1" }) @@ -289,7 +296,7 @@ class ShadeListBuilderLogger @Inject constructor( if (entry is GroupEntry) { entry.summary?.let { buffer.log(TAG, DEBUG, { - str1 = it.key + str1 = it.logKey }, { " [*] $str1 (summary)" }) @@ -298,7 +305,7 @@ class ShadeListBuilderLogger @Inject constructor( val child = entry.children[j] buffer.log(TAG, DEBUG, { int1 = j - str1 = child.key + str1 = child.logKey }, { " [$int1] $str1" }) @@ -308,7 +315,7 @@ class ShadeListBuilderLogger @Inject constructor( } fun logPipelineRunSuppressed() = - buffer.log(TAG, INFO, {}) { "Suppressing pipeline run during animation." } + buffer.log(TAG, INFO, {}) { "Suppressing pipeline run during animation." } } private const val TAG = "ShadeListBuilder"
\ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt index ac0b1ee6c442..46e01c33bae3 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/notifcollection/NotifCollectionLogger.kt @@ -19,6 +19,7 @@ package com.android.systemui.statusbar.notification.collection.notifcollection import android.os.RemoteException import android.service.notification.NotificationListenerService import android.service.notification.NotificationListenerService.RankingMap +import android.service.notification.StatusBarNotification import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel.DEBUG import com.android.systemui.log.LogLevel.ERROR @@ -65,9 +66,9 @@ fun cancellationReasonDebugString(@CancellationReason reason: Int) = class NotifCollectionLogger @Inject constructor( @NotificationLog private val buffer: LogBuffer ) { - fun logNotifPosted(key: String) { + fun logNotifPosted(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "POSTED $str1" }) @@ -75,49 +76,49 @@ class NotifCollectionLogger @Inject constructor( fun logNotifGroupPosted(groupKey: String, batchSize: Int) { buffer.log(TAG, INFO, { - str1 = groupKey + str1 = logKey(groupKey) int1 = batchSize }, { "POSTED GROUP $str1 ($int1 events)" }) } - fun logNotifUpdated(key: String) { + fun logNotifUpdated(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "UPDATED $str1" }) } - fun logNotifRemoved(key: String, @CancellationReason reason: Int) { + fun logNotifRemoved(sbn: StatusBarNotification, @CancellationReason reason: Int) { buffer.log(TAG, INFO, { - str1 = key + str1 = sbn.logKey int1 = reason }, { "REMOVED $str1 reason=${cancellationReasonDebugString(int1)}" }) } - fun logNotifReleased(key: String) { + fun logNotifReleased(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "RELEASED $str1" }) } - fun logNotifDismissed(key: String) { + fun logNotifDismissed(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "DISMISSED $str1" }) } - fun logNonExistentNotifDismissed(key: String) { + fun logNonExistentNotifDismissed(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "DISMISSED Non Existent $str1" }) @@ -125,7 +126,7 @@ class NotifCollectionLogger @Inject constructor( fun logChildDismissed(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = entry.key + str1 = entry.logKey }, { "CHILD DISMISSED (inferred): $str1" }) @@ -141,31 +142,31 @@ class NotifCollectionLogger @Inject constructor( fun logDismissOnAlreadyCanceledEntry(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = entry.key + str1 = entry.logKey }, { "Dismiss on $str1, which was already canceled. Trying to remove..." }) } - fun logNotifDismissedIntercepted(key: String) { + fun logNotifDismissedIntercepted(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "DISMISS INTERCEPTED $str1" }) } - fun logNotifClearAllDismissalIntercepted(key: String) { + fun logNotifClearAllDismissalIntercepted(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "CLEAR ALL DISMISSAL INTERCEPTED $str1" }) } - fun logNotifInternalUpdate(key: String, name: String, reason: String) { + fun logNotifInternalUpdate(entry: NotificationEntry, name: String, reason: String) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey str2 = name str3 = reason }, { @@ -173,9 +174,9 @@ class NotifCollectionLogger @Inject constructor( }) } - fun logNotifInternalUpdateFailed(key: String, name: String, reason: String) { + fun logNotifInternalUpdateFailed(sbn: StatusBarNotification, name: String, reason: String) { buffer.log(TAG, INFO, { - str1 = key + str1 = sbn.logKey str2 = name str3 = reason }, { @@ -183,26 +184,33 @@ class NotifCollectionLogger @Inject constructor( }) } - fun logNoNotificationToRemoveWithKey(key: String, @CancellationReason reason: Int) { + fun logNoNotificationToRemoveWithKey( + sbn: StatusBarNotification, + @CancellationReason reason: Int + ) { buffer.log(TAG, ERROR, { - str1 = key + str1 = sbn.logKey int1 = reason }, { "No notification to remove with key $str1 reason=${cancellationReasonDebugString(int1)}" }) } - fun logRankingMissing(key: String, rankingMap: RankingMap) { - buffer.log(TAG, WARNING, { str1 = key }, { "Ranking update is missing ranking for $str1" }) + fun logRankingMissing(entry: NotificationEntry, rankingMap: RankingMap) { + buffer.log(TAG, WARNING, { + str1 = entry.logKey + }, { + "Ranking update is missing ranking for $str1" + }) buffer.log(TAG, DEBUG, {}, { "Ranking map contents:" }) for (entry in rankingMap.orderedKeys) { - buffer.log(TAG, DEBUG, { str1 = entry }, { " $str1" }) + buffer.log(TAG, DEBUG, { str1 = logKey(entry) }, { " $str1" }) } } - fun logRemoteExceptionOnNotificationClear(key: String, e: RemoteException) { + fun logRemoteExceptionOnNotificationClear(entry: NotificationEntry, e: RemoteException) { buffer.log(TAG, WTF, { - str1 = key + str1 = entry.logKey str2 = e.toString() }, { "RemoteException while attempting to clear $str1:\n$str2" @@ -217,9 +225,9 @@ class NotifCollectionLogger @Inject constructor( }) } - fun logLifetimeExtended(key: String, extender: NotifLifetimeExtender) { + fun logLifetimeExtended(entry: NotificationEntry, extender: NotifLifetimeExtender) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey str2 = extender.name }, { "LIFETIME EXTENDED: $str1 by $str2" @@ -227,12 +235,12 @@ class NotifCollectionLogger @Inject constructor( } fun logLifetimeExtensionEnded( - key: String, + entry: NotificationEntry, extender: NotifLifetimeExtender, totalExtenders: Int ) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey str2 = extender.name int1 = totalExtenders }, { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinder.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinder.java index 19cf9dc135b1..5ef2b9e55d9e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinder.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinder.java @@ -83,7 +83,7 @@ public class HeadsUpViewBinder { params.setUseIncreasedHeadsUpHeight(useIncreasedHeadsUp); params.requireContentViews(FLAG_CONTENT_VIEW_HEADS_UP); CancellationSignal signal = mStage.requestRebind(entry, en -> { - mLogger.entryBoundSuccessfully(entry.getKey()); + mLogger.entryBoundSuccessfully(entry); en.getRow().setUsesIncreasedHeadsUpHeight(params.useIncreasedHeadsUpHeight()); // requestRebing promises that if we called cancel before this callback would be // invoked, then we will not enter this callback, and because we always cancel before @@ -94,7 +94,7 @@ public class HeadsUpViewBinder { } }); abortBindCallback(entry); - mLogger.startBindingHun(entry.getKey()); + mLogger.startBindingHun(entry); mOngoingBindCallbacks.put(entry, signal); } @@ -105,7 +105,7 @@ public class HeadsUpViewBinder { public void abortBindCallback(NotificationEntry entry) { CancellationSignal ongoingBindCallback = mOngoingBindCallbacks.remove(entry); if (ongoingBindCallback != null) { - mLogger.currentOngoingBindingAborted(entry.getKey()); + mLogger.currentOngoingBindingAborted(entry); ongoingBindCallback.cancel(); } } @@ -116,7 +116,7 @@ public class HeadsUpViewBinder { public void unbindHeadsUpView(NotificationEntry entry) { abortBindCallback(entry); mStage.getStageParams(entry).markContentViewsFreeable(FLAG_CONTENT_VIEW_HEADS_UP); - mLogger.entryContentViewMarkedFreeable(entry.getKey()); - mStage.requestRebind(entry, e -> mLogger.entryUnbound(e.getKey())); + mLogger.entryContentViewMarkedFreeable(entry); + mStage.requestRebind(entry, e -> mLogger.entryUnbound(e)); } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt index 50a6207efe0b..d1feaa05c653 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderLogger.kt @@ -3,44 +3,46 @@ package com.android.systemui.statusbar.notification.interruption import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.statusbar.notification.collection.NotificationEntry +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject class HeadsUpViewBinderLogger @Inject constructor(@NotificationHeadsUpLog val buffer: LogBuffer) { - fun startBindingHun(key: String) { + fun startBindingHun(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "start binding heads up entry $str1 " }) } - fun currentOngoingBindingAborted(key: String) { + fun currentOngoingBindingAborted(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "aborted potential ongoing heads up entry binding $str1 " }) } - fun entryBoundSuccessfully(key: String) { + fun entryBoundSuccessfully(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "heads up entry bound successfully $str1 " }) } - fun entryUnbound(key: String) { + fun entryUnbound(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "heads up entry unbound successfully $str1 " }) } - fun entryContentViewMarkedFreeable(key: String) { + fun entryContentViewMarkedFreeable(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "start unbinding heads up entry $str1 " }) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt index 1d18ca3dfade..016b388ff60a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptLogger.kt @@ -16,11 +16,12 @@ package com.android.systemui.statusbar.notification.interruption -import android.service.notification.StatusBarNotification import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel.DEBUG import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationInterruptLog +import com.android.systemui.statusbar.notification.collection.NotificationEntry +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject class NotificationInterruptLogger @Inject constructor( @@ -41,17 +42,17 @@ class NotificationInterruptLogger @Inject constructor( }) } - fun logNoBubbleNotAllowed(sbn: StatusBarNotification) { + fun logNoBubbleNotAllowed(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No bubble up: not allowed to bubble: $str1" }) } - fun logNoBubbleNoMetadata(sbn: StatusBarNotification) { + fun logNoBubbleNoMetadata(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No bubble up: notification: $str1 doesn't have valid metadata" }) @@ -64,89 +65,89 @@ class NotificationInterruptLogger @Inject constructor( }) } - fun logNoHeadsUpPackageSnoozed(sbn: StatusBarNotification) { + fun logNoHeadsUpPackageSnoozed(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No alerting: snoozed package: $str1" }) } - fun logNoHeadsUpAlreadyBubbled(sbn: StatusBarNotification) { + fun logNoHeadsUpAlreadyBubbled(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No heads up: in unlocked shade where notification is shown as a bubble: $str1" }) } - fun logNoHeadsUpSuppressedByDnd(sbn: StatusBarNotification) { + fun logNoHeadsUpSuppressedByDnd(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No heads up: suppressed by DND: $str1" }) } - fun logNoHeadsUpNotImportant(sbn: StatusBarNotification) { + fun logNoHeadsUpNotImportant(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No heads up: unimportant notification: $str1" }) } - fun logNoHeadsUpNotInUse(sbn: StatusBarNotification) { + fun logNoHeadsUpNotInUse(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No heads up: not in use: $str1" }) } fun logNoHeadsUpSuppressedBy( - sbn: StatusBarNotification, + entry: NotificationEntry, suppressor: NotificationInterruptSuppressor ) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey str2 = suppressor.name }, { "No heads up: aborted by suppressor: $str2 sbnKey=$str1" }) } - fun logHeadsUp(sbn: StatusBarNotification) { + fun logHeadsUp(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "Heads up: $str1" }) } - fun logNoAlertingFilteredOut(sbn: StatusBarNotification) { + fun logNoAlertingFilteredOut(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No alerting: filtered notification: $str1" }) } - fun logNoAlertingGroupAlertBehavior(sbn: StatusBarNotification) { + fun logNoAlertingGroupAlertBehavior(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No alerting: suppressed due to group alert behavior: $str1" }) } fun logNoAlertingSuppressedBy( - sbn: StatusBarNotification, + entry: NotificationEntry, suppressor: NotificationInterruptSuppressor, awake: Boolean ) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey str2 = suppressor.name bool1 = awake }, { @@ -154,65 +155,65 @@ class NotificationInterruptLogger @Inject constructor( }) } - fun logNoAlertingRecentFullscreen(sbn: StatusBarNotification) { + fun logNoAlertingRecentFullscreen(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No alerting: recent fullscreen: $str1" }) } - fun logNoPulsingSettingDisabled(sbn: StatusBarNotification) { + fun logNoPulsingSettingDisabled(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No pulsing: disabled by setting: $str1" }) } - fun logNoPulsingBatteryDisabled(sbn: StatusBarNotification) { + fun logNoPulsingBatteryDisabled(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No pulsing: disabled by battery saver: $str1" }) } - fun logNoPulsingNoAlert(sbn: StatusBarNotification) { + fun logNoPulsingNoAlert(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No pulsing: notification shouldn't alert: $str1" }) } - fun logNoPulsingNoAmbientEffect(sbn: StatusBarNotification) { + fun logNoPulsingNoAmbientEffect(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No pulsing: ambient effect suppressed: $str1" }) } - fun logNoPulsingNotImportant(sbn: StatusBarNotification) { + fun logNoPulsingNotImportant(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "No pulsing: not important enough: $str1" }) } - fun logPulsing(sbn: StatusBarNotification) { + fun logPulsing(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = sbn.key + str1 = entry.logKey }, { "Pulsing: $str1" }) } - fun keyguardHideNotification(key: String) { + fun keyguardHideNotification(entry: NotificationEntry) { buffer.log(TAG, DEBUG, { - str1 = key + str1 = entry.logKey }, { "Keyguard Hide Notification: $str1" }) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java index a063dbd99626..8378b69bee9a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/NotificationInterruptStateProviderImpl.java @@ -147,14 +147,14 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter } if (!entry.canBubble()) { - mLogger.logNoBubbleNotAllowed(sbn); + mLogger.logNoBubbleNotAllowed(entry); return false; } if (entry.getBubbleMetadata() == null || (entry.getBubbleMetadata().getShortcutId() == null && entry.getBubbleMetadata().getIntent() == null)) { - mLogger.logNoBubbleNoMetadata(sbn); + mLogger.logNoBubbleNoMetadata(entry); return false; } @@ -203,23 +203,23 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter } if (isSnoozedPackage(sbn)) { - mLogger.logNoHeadsUpPackageSnoozed(sbn); + mLogger.logNoHeadsUpPackageSnoozed(entry); return false; } boolean inShade = mStatusBarStateController.getState() == SHADE; if (entry.isBubble() && inShade) { - mLogger.logNoHeadsUpAlreadyBubbled(sbn); + mLogger.logNoHeadsUpAlreadyBubbled(entry); return false; } if (entry.shouldSuppressPeek()) { - mLogger.logNoHeadsUpSuppressedByDnd(sbn); + mLogger.logNoHeadsUpSuppressedByDnd(entry); return false; } if (entry.getImportance() < NotificationManager.IMPORTANCE_HIGH) { - mLogger.logNoHeadsUpNotImportant(sbn); + mLogger.logNoHeadsUpNotImportant(entry); return false; } @@ -232,17 +232,17 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter boolean inUse = mPowerManager.isScreenOn() && !isDreaming; if (!inUse) { - mLogger.logNoHeadsUpNotInUse(sbn); + mLogger.logNoHeadsUpNotInUse(entry); return false; } for (int i = 0; i < mSuppressors.size(); i++) { if (mSuppressors.get(i).suppressAwakeHeadsUp(entry)) { - mLogger.logNoHeadsUpSuppressedBy(sbn, mSuppressors.get(i)); + mLogger.logNoHeadsUpSuppressedBy(entry, mSuppressors.get(i)); return false; } } - mLogger.logHeadsUp(sbn); + mLogger.logHeadsUp(entry); return true; } @@ -254,38 +254,36 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter * @return true if the entry should ambient pulse, false otherwise */ private boolean shouldHeadsUpWhenDozing(NotificationEntry entry) { - StatusBarNotification sbn = entry.getSbn(); - if (!mAmbientDisplayConfiguration.pulseOnNotificationEnabled(UserHandle.USER_CURRENT)) { - mLogger.logNoPulsingSettingDisabled(sbn); + mLogger.logNoPulsingSettingDisabled(entry); return false; } if (mBatteryController.isAodPowerSave()) { - mLogger.logNoPulsingBatteryDisabled(sbn); + mLogger.logNoPulsingBatteryDisabled(entry); return false; } if (!canAlertCommon(entry)) { - mLogger.logNoPulsingNoAlert(sbn); + mLogger.logNoPulsingNoAlert(entry); return false; } if (!canAlertHeadsUpCommon(entry)) { - mLogger.logNoPulsingNoAlert(sbn); + mLogger.logNoPulsingNoAlert(entry); return false; } if (entry.shouldSuppressAmbient()) { - mLogger.logNoPulsingNoAmbientEffect(sbn); + mLogger.logNoPulsingNoAmbientEffect(entry); return false; } if (entry.getImportance() < NotificationManager.IMPORTANCE_DEFAULT) { - mLogger.logNoPulsingNotImportant(sbn); + mLogger.logNoPulsingNotImportant(entry); return false; } - mLogger.logPulsing(sbn); + mLogger.logPulsing(entry); return true; } @@ -296,22 +294,20 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter * @return true if these checks pass, false if the notification should not alert */ private boolean canAlertCommon(NotificationEntry entry) { - StatusBarNotification sbn = entry.getSbn(); - if (!mFlags.isNewPipelineEnabled() && mNotificationFilter.shouldFilterOut(entry)) { - mLogger.logNoAlertingFilteredOut(sbn); + mLogger.logNoAlertingFilteredOut(entry); return false; } for (int i = 0; i < mSuppressors.size(); i++) { if (mSuppressors.get(i).suppressInterruptions(entry)) { - mLogger.logNoAlertingSuppressedBy(sbn, mSuppressors.get(i), /* awake */ false); + mLogger.logNoAlertingSuppressedBy(entry, mSuppressors.get(i), /* awake */ false); return false; } } if (mKeyguardNotificationVisibilityProvider.shouldHideNotification(entry)) { - mLogger.keyguardHideNotification(entry.getKey()); + mLogger.keyguardHideNotification(entry); return false; } @@ -329,12 +325,12 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter // Don't alert notifications that are suppressed due to group alert behavior if (sbn.isGroup() && sbn.getNotification().suppressAlertingDueToGrouping()) { - mLogger.logNoAlertingGroupAlertBehavior(sbn); + mLogger.logNoAlertingGroupAlertBehavior(entry); return false; } if (entry.hasJustLaunchedFullScreenIntent()) { - mLogger.logNoAlertingRecentFullscreen(sbn); + mLogger.logNoAlertingRecentFullscreen(entry); return false; } @@ -352,7 +348,7 @@ public class NotificationInterruptStateProviderImpl implements NotificationInter for (int i = 0; i < mSuppressors.size(); i++) { if (mSuppressors.get(i).suppressAwakeInterruptions(entry)) { - mLogger.logNoAlertingSuppressedBy(sbn, mSuppressors.get(i), /* awake */ true); + mLogger.logNoAlertingSuppressedBy(entry, mSuppressors.get(i), /* awake */ true); return false; } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java index 599039d46556..a493a676e3d8 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ExpandableNotificationRowController.java @@ -19,6 +19,7 @@ package com.android.systemui.statusbar.notification.row; import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; import static com.android.systemui.statusbar.NotificationRemoteInputManager.ENABLE_REMOTE_INPUT; import static com.android.systemui.statusbar.StatusBarState.KEYGUARD; +import static com.android.systemui.statusbar.notification.NotificationUtils.logKey; import android.util.Log; import android.view.View; @@ -247,7 +248,7 @@ public class ExpandableNotificationRowController implements NotifViewController @Override @NonNull public String getNodeLabel() { - return mView.getEntry().getKey(); + return logKey(mView.getEntry()); } @Override diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java index f693ebbb7830..ea564ddb9193 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipeline.java @@ -112,7 +112,8 @@ public final class NotifBindPipeline { public void manageRow( @NonNull NotificationEntry entry, @NonNull ExpandableNotificationRow row) { - mLogger.logManagedRow(entry.getKey()); + mLogger.logManagedRow(entry); + mLogger.logManagedRow(entry); final BindEntry bindEntry = getBindEntry(entry); if (bindEntry == null) { @@ -154,12 +155,12 @@ public final class NotifBindPipeline { * the real work once rather than repeatedly start and cancel it. */ private void requestPipelineRun(NotificationEntry entry) { - mLogger.logRequestPipelineRun(entry.getKey()); + mLogger.logRequestPipelineRun(entry); final BindEntry bindEntry = getBindEntry(entry); if (bindEntry.row == null) { // Row is not managed yet but may be soon. Stop for now. - mLogger.logRequestPipelineRowNotSet(entry.getKey()); + mLogger.logRequestPipelineRowNotSet(entry); return; } @@ -177,7 +178,7 @@ public final class NotifBindPipeline { * callbacks when the run finishes. If a run is already in progress, it is restarted. */ private void startPipeline(NotificationEntry entry) { - mLogger.logStartPipeline(entry.getKey()); + mLogger.logStartPipeline(entry); if (mStage == null) { throw new IllegalStateException("No stage was ever set on the pipeline"); @@ -193,7 +194,7 @@ public final class NotifBindPipeline { final BindEntry bindEntry = getBindEntry(entry); final Set<BindCallback> callbacks = bindEntry.callbacks; - mLogger.logFinishedPipeline(entry.getKey(), callbacks.size()); + mLogger.logFinishedPipeline(entry, callbacks.size()); bindEntry.invalidated = false; // Move all callbacks to separate list as callbacks may themselves add/remove callbacks. diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt index ec406f0524ff..ab91926d466a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotifBindPipelineLogger.kt @@ -19,6 +19,8 @@ package com.android.systemui.statusbar.notification.row import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.statusbar.notification.collection.NotificationEntry +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject class NotifBindPipelineLogger @Inject constructor( @@ -32,41 +34,41 @@ class NotifBindPipelineLogger @Inject constructor( }) } - fun logManagedRow(notifKey: String) { + fun logManagedRow(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = notifKey + str1 = entry.logKey }, { "Row set for notif: $str1" }) } - fun logRequestPipelineRun(notifKey: String) { + fun logRequestPipelineRun(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = notifKey + str1 = entry.logKey }, { "Request pipeline run for notif: $str1" }) } - fun logRequestPipelineRowNotSet(notifKey: String) { + fun logRequestPipelineRowNotSet(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = notifKey + str1 = entry.logKey }, { "Row is not set so pipeline will not run. notif = $str1" }) } - fun logStartPipeline(notifKey: String) { + fun logStartPipeline(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = notifKey + str1 = entry.logKey }, { "Start pipeline for notif: $str1" }) } - fun logFinishedPipeline(notifKey: String, numCallbacks: Int) { + fun logFinishedPipeline(entry: NotificationEntry, numCallbacks: Int) { buffer.log(TAG, INFO, { - str1 = notifKey + str1 = entry.logKey int1 = numCallbacks }, { "Finished pipeline for notif $str1 with $int1 callbacks" diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java index 3616f8faee1e..81cf14646465 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStage.java @@ -57,7 +57,7 @@ public class RowContentBindStage extends BindStage<RowContentBindParams> { @NonNull StageCallback callback) { RowContentBindParams params = getStageParams(entry); - mLogger.logStageParams(entry.getKey(), params.toString()); + mLogger.logStageParams(entry, params); // Resolve content to bind/unbind. @InflationFlag int inflationFlags = params.getContentViews(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt index 29cce3375c8a..f9923b2254d7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/RowContentBindStageLogger.kt @@ -19,17 +19,19 @@ package com.android.systemui.statusbar.notification.row import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationLog +import com.android.systemui.statusbar.notification.collection.NotificationEntry +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject class RowContentBindStageLogger @Inject constructor( @NotificationLog private val buffer: LogBuffer ) { - fun logStageParams(notifKey: String, stageParams: String) { + fun logStageParams(entry: NotificationEntry, stageParams: RowContentBindParams) { buffer.log(TAG, INFO, { - str1 = notifKey - str2 = stageParams + str1 = entry.logKey + str2 = stageParams.toString() }, { - "Invalidated notif $str1 with params: \n$str2" + "Invalidated notif $str1 with params: $str2" }) } } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index 213f00b8e03d..2fd02d9f1cd9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -748,19 +748,20 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable } } - private void logHunSkippedForUnexpectedState(String key, boolean expected, boolean actual) { + private void logHunSkippedForUnexpectedState(ExpandableNotificationRow enr, + boolean expected, boolean actual) { if (mLogger == null) return; - mLogger.hunSkippedForUnexpectedState(key, expected, actual); + mLogger.hunSkippedForUnexpectedState(enr.getEntry(), expected, actual); } - private void logHunAnimationSkipped(String key, String reason) { + private void logHunAnimationSkipped(ExpandableNotificationRow enr, String reason) { if (mLogger == null) return; - mLogger.hunAnimationSkipped(key, reason); + mLogger.hunAnimationSkipped(enr.getEntry(), reason); } - private void logHunAnimationEventAdded(String key, int type) { + private void logHunAnimationEventAdded(ExpandableNotificationRow enr, int type) { if (mLogger == null) return; - mLogger.hunAnimationEventAdded(key, type); + mLogger.hunAnimationEventAdded(enr.getEntry(), type); } private void onDrawDebug(Canvas canvas) { @@ -3174,7 +3175,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable if (isHeadsUp != row.isHeadsUp()) { // For cases where we have a heads up showing and appearing again we shouldn't // do the animations at all. - logHunSkippedForUnexpectedState(key, isHeadsUp, row.isHeadsUp()); + logHunSkippedForUnexpectedState(row, isHeadsUp, row.isHeadsUp()); continue; } int type = AnimationEvent.ANIMATION_TYPE_HEADS_UP_OTHER; @@ -3192,7 +3193,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable if (row.isChildInGroup()) { // We can otherwise get stuck in there if it was just isolated row.setHeadsUpAnimatingAway(false); - logHunAnimationSkipped(key, "row is child in group"); + logHunAnimationSkipped(row, "row is child in group"); continue; } } else { @@ -3200,7 +3201,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable if (viewState == null) { // A view state was never generated for this view, so we don't need to animate // this. This may happen with notification children. - logHunAnimationSkipped(key, "row has no viewState"); + logHunAnimationSkipped(row, "row has no viewState"); continue; } if (isHeadsUp && (mAddedHeadsUpChildren.contains(row) || pinnedAndClosed)) { @@ -3224,7 +3225,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable + " onBottom=" + onBottom + " row=" + row.getEntry().getKey()); } - logHunAnimationEventAdded(key, type); + logHunAnimationEventAdded(row, type); } mHeadsUpChangeAnimations.clear(); mAddedHeadsUpChildren.clear(); @@ -4360,8 +4361,6 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable /** * Update colors of "dismiss" and "empty shade" views. - * - * @param lightTheme True if light theme should be used. */ @ShadeViewRefactor(RefactorComponent.DECORATOR) void updateDecorViews() { @@ -4777,8 +4776,7 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable if (SPEW) { Log.v(TAG, "generateHeadsUpAnimation: previous hun appear animation cancelled"); } - logHunAnimationSkipped(row.getEntry().getKey(), - "previous hun appear animation cancelled"); + logHunAnimationSkipped(row, "previous hun appear animation cancelled"); return; } mHeadsUpChangeAnimations.add(new Pair<>(row, isHeadsUp)); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt index 04bf62104f66..5f79c0e3913a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLogger.kt @@ -3,21 +3,27 @@ package com.android.systemui.statusbar.notification.stack import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.dagger.NotificationHeadsUpLog -import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.AnimationEvent.* +import com.android.systemui.statusbar.notification.collection.NotificationEntry +import com.android.systemui.statusbar.notification.logKey +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_ADD +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_HEADS_UP_APPEAR +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_HEADS_UP_DISAPPEAR_CLICK +import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout.AnimationEvent.ANIMATION_TYPE_HEADS_UP_OTHER import javax.inject.Inject class NotificationStackScrollLogger @Inject constructor( @NotificationHeadsUpLog private val buffer: LogBuffer ) { - fun hunAnimationSkipped(key: String, reason: String) { + fun hunAnimationSkipped(entry: NotificationEntry, reason: String) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey str2 = reason }, { "heads up animation skipped: key: $str1 reason: $str2" }) } - fun hunAnimationEventAdded(key: String, type: Int) { + fun hunAnimationEventAdded(entry: NotificationEntry, type: Int) { val reason: String reason = if (type == ANIMATION_TYPE_HEADS_UP_DISAPPEAR) { "HEADS_UP_DISAPPEAR" @@ -33,16 +39,16 @@ class NotificationStackScrollLogger @Inject constructor( type.toString() } buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey str2 = reason }, { "heads up animation added: $str1 with type $str2" }) } - fun hunSkippedForUnexpectedState(key: String, expected: Boolean, actual: Boolean) { + fun hunSkippedForUnexpectedState(entry: NotificationEntry, expected: Boolean, actual: Boolean) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey bool1 = expected bool2 = actual }, { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt index 77377af9ddfb..cb4a0884fea4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/StackStateLogger.kt @@ -3,6 +3,7 @@ package com.android.systemui.statusbar.notification.stack import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject class StackStateLogger @Inject constructor( @@ -10,7 +11,7 @@ class StackStateLogger @Inject constructor( ) { fun logHUNViewDisappearing(key: String) { buffer.log(TAG, LogLevel.INFO, { - str1 = key + str1 = logKey(key) }, { "Heads up view disappearing $str1 " }) @@ -18,7 +19,7 @@ class StackStateLogger @Inject constructor( fun logHUNViewAppearing(key: String) { buffer.log(TAG, LogLevel.INFO, { - str1 = key + str1 = logKey(key) }, { "Heads up notification view appearing $str1 " }) @@ -26,7 +27,7 @@ class StackStateLogger @Inject constructor( fun logHUNViewDisappearingWithRemoveEvent(key: String) { buffer.log(TAG, LogLevel.ERROR, { - str1 = key + str1 = logKey(key) }, { "Heads up view disappearing $str1 for ANIMATION_TYPE_REMOVE" }) @@ -34,7 +35,7 @@ class StackStateLogger @Inject constructor( fun logHUNViewAppearingWithAddEvent(key: String) { buffer.log(TAG, LogLevel.ERROR, { - str1 = key + str1 = logKey(key) }, { "Heads up view disappearing $str1 for ANIMATION_TYPE_ADD" }) @@ -42,7 +43,7 @@ class StackStateLogger @Inject constructor( fun disappearAnimationEnded(key: String) { buffer.log(TAG, LogLevel.INFO, { - str1 = key + str1 = logKey(key) }, { "Heads up notification disappear animation ended $str1 " }) @@ -50,7 +51,7 @@ class StackStateLogger @Inject constructor( fun appearAnimationEnded(key: String) { buffer.log(TAG, LogLevel.INFO, { - str1 = key + str1 = logKey(key) }, { "Heads up notification appear animation ended $str1 " }) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java index e5d5ed48cc9f..699414c27059 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManager.java @@ -145,7 +145,7 @@ public abstract class HeadsUpManager extends AlertingNotificationManager { protected void setEntryPinned( @NonNull HeadsUpManager.HeadsUpEntry headsUpEntry, boolean isPinned) { - mLogger.logSetEntryPinned(headsUpEntry.mEntry.getKey(), isPinned); + mLogger.logSetEntryPinned(headsUpEntry.mEntry, isPinned); NotificationEntry entry = headsUpEntry.mEntry; if (entry.isRowPinned() != isPinned) { entry.setRowPinned(isPinned); @@ -186,7 +186,7 @@ public abstract class HeadsUpManager extends AlertingNotificationManager { entry.setHeadsUp(false); setEntryPinned((HeadsUpEntry) alertEntry, false /* isPinned */); EventLogTags.writeSysuiHeadsUpStatus(entry.getKey(), 0 /* visible */); - mLogger.logNotificationActuallyRemoved(entry.getKey()); + mLogger.logNotificationActuallyRemoved(entry); for (OnHeadsUpChangedListener listener : mListeners) { listener.onHeadsUpStateChanged(entry, false); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt index 6a74ba957b4b..d7c81af53d8b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpManagerLogger.kt @@ -20,6 +20,8 @@ import com.android.systemui.log.LogBuffer import com.android.systemui.log.LogLevel.INFO import com.android.systemui.log.LogLevel.VERBOSE import com.android.systemui.log.dagger.NotificationHeadsUpLog +import com.android.systemui.statusbar.notification.collection.NotificationEntry +import com.android.systemui.statusbar.notification.logKey import javax.inject.Inject /** Logger for [HeadsUpManager]. */ @@ -56,9 +58,9 @@ class HeadsUpManagerLogger @Inject constructor( }) } - fun logShowNotification(key: String) { + fun logShowNotification(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "show notification $str1" }) @@ -66,16 +68,16 @@ class HeadsUpManagerLogger @Inject constructor( fun logRemoveNotification(key: String, releaseImmediately: Boolean) { buffer.log(TAG, INFO, { - str1 = key + str1 = logKey(key) bool1 = releaseImmediately }, { "remove notification $str1 releaseImmediately: $bool1" }) } - fun logNotificationActuallyRemoved(key: String) { + fun logNotificationActuallyRemoved(entry: NotificationEntry) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey }, { "notification removed $str1 " }) @@ -83,7 +85,7 @@ class HeadsUpManagerLogger @Inject constructor( fun logUpdateNotification(key: String, alert: Boolean, hasEntry: Boolean) { buffer.log(TAG, INFO, { - str1 = key + str1 = logKey(key) bool1 = alert bool2 = hasEntry }, { @@ -91,12 +93,12 @@ class HeadsUpManagerLogger @Inject constructor( }) } - fun logUpdateEntry(key: String, updatePostTime: Boolean) { + fun logUpdateEntry(entry: NotificationEntry, updatePostTime: Boolean) { buffer.log(TAG, INFO, { - str1 = key + str1 = entry.logKey bool1 = updatePostTime }, { - "update entry $key updatePostTime: $bool1" + "update entry $str1 updatePostTime: $bool1" }) } @@ -108,9 +110,9 @@ class HeadsUpManagerLogger @Inject constructor( }) } - fun logSetEntryPinned(key: String, isPinned: Boolean) { + fun logSetEntryPinned(entry: NotificationEntry, isPinned: Boolean) { buffer.log(TAG, VERBOSE, { - str1 = key + str1 = entry.logKey bool1 = isPinned }, { "set entry pinned $str1 pinned: $bool1" diff --git a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java index f00fbe6ac4d7..141a213a5b6a 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java @@ -20,6 +20,7 @@ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; +import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; @@ -480,4 +481,13 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { // hide dialog again mGlobalActionsDialogLite.showOrHideDialog(true, true, null /* view */); } + + @Test + public void testBugreportAction_whenDebugMode_shouldOfferBugreportButtonBeforeProvisioning() { + doReturn(1).when(mGlobalSettings).getInt(anyString(), anyInt()); + + GlobalActionsDialogLite.BugReportAction bugReportAction = + mGlobalActionsDialogLite.makeBugReportActionForTesting(); + assertThat(bugReportAction.showBeforeProvisioning()).isTrue(); + } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt index b9a69bb8641a..1527f0d0d71f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/common/MediaTttChipControllerCommonTest.kt @@ -25,6 +25,7 @@ import android.view.MotionEvent import android.view.View import android.view.ViewGroup import android.view.WindowManager +import android.view.accessibility.AccessibilityManager import android.widget.ImageView import androidx.test.filters.SmallTest import com.android.systemui.R @@ -65,6 +66,8 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { @Mock private lateinit var logger: MediaTttLogger @Mock + private lateinit var accessibilityManager: AccessibilityManager + @Mock private lateinit var windowManager: WindowManager @Mock private lateinit var viewUtil: ViewUtil @@ -88,11 +91,21 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { )).thenReturn(applicationInfo) context.setMockPackageManager(packageManager) + whenever(accessibilityManager.getRecommendedTimeoutMillis(any(), any())) + .thenReturn(TIMEOUT_MS.toInt()) + fakeClock = FakeSystemClock() fakeExecutor = FakeExecutor(fakeClock) controllerCommon = TestControllerCommon( - context, logger, windowManager, viewUtil, fakeExecutor, tapGestureDetector, powerManager + context, + logger, + windowManager, + viewUtil, + fakeExecutor, + accessibilityManager, + tapGestureDetector, + powerManager ) } @@ -344,6 +357,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { windowManager: WindowManager, viewUtil: ViewUtil, @Main mainExecutor: DelayableExecutor, + accessibilityManager: AccessibilityManager, tapGestureDetector: TapGestureDetector, powerManager: PowerManager ) : MediaTttChipControllerCommon<ChipInfo>( @@ -352,6 +366,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { windowManager, viewUtil, mainExecutor, + accessibilityManager, tapGestureDetector, powerManager, R.layout.media_ttt_chip @@ -364,7 +379,7 @@ class MediaTttChipControllerCommonTest : SysuiTestCase() { } inner class ChipInfo : ChipInfoCommon { - override fun getTimeoutMs() = TIMEOUT_MS + override fun getTimeoutMs() = 1L } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt index 9edc4f4c71c3..bbc564193080 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/receiver/MediaTttChipControllerReceiverTest.kt @@ -28,6 +28,7 @@ import android.testing.TestableLooper import android.view.View import android.view.ViewGroup import android.view.WindowManager +import android.view.accessibility.AccessibilityManager import android.widget.ImageView import androidx.test.filters.SmallTest import com.android.internal.logging.testing.UiEventLoggerFake @@ -65,6 +66,8 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { @Mock private lateinit var logger: MediaTttLogger @Mock + private lateinit var accessibilityManager: AccessibilityManager + @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var windowManager: WindowManager @@ -99,6 +102,7 @@ class MediaTttChipControllerReceiverTest : SysuiTestCase() { windowManager, viewUtil, FakeExecutor(FakeSystemClock()), + accessibilityManager, TapGestureDetector(context), powerManager, Handler.getMain(), diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt index a8c72ddfd5d7..7ca0cd34ab26 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/taptotransfer/sender/MediaTttChipControllerSenderTest.kt @@ -27,6 +27,7 @@ import android.testing.TestableLooper import android.view.View import android.view.ViewGroup import android.view.WindowManager +import android.view.accessibility.AccessibilityManager import android.widget.ImageView import android.widget.TextView import androidx.test.filters.SmallTest @@ -67,6 +68,8 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { @Mock private lateinit var logger: MediaTttLogger @Mock + private lateinit var accessibilityManager: AccessibilityManager + @Mock private lateinit var powerManager: PowerManager @Mock private lateinit var windowManager: WindowManager @@ -95,9 +98,12 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { fakeClock = FakeSystemClock() fakeExecutor = FakeExecutor(fakeClock) + uiEventLoggerFake = UiEventLoggerFake() senderUiEventLogger = MediaTttSenderUiEventLogger(uiEventLoggerFake) + whenever(accessibilityManager.getRecommendedTimeoutMillis(any(), any())).thenReturn(TIMEOUT) + controllerSender = MediaTttChipControllerSender( commandQueue, context, @@ -105,6 +111,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { windowManager, viewUtil, fakeExecutor, + accessibilityManager, TapGestureDetector(context), powerManager, senderUiEventLogger @@ -592,7 +599,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { fakeClock.advanceTime(1000L) controllerSender.removeChip("fakeRemovalReason") - fakeClock.advanceTime(state.state.timeout + 1) + fakeClock.advanceTime(TIMEOUT + 1L) verify(windowManager).removeView(any()) } @@ -615,7 +622,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { fakeClock.advanceTime(1000L) controllerSender.removeChip("fakeRemovalReason") - fakeClock.advanceTime(state.state.timeout + 1) + fakeClock.advanceTime(TIMEOUT + 1L) verify(windowManager).removeView(any()) } @@ -674,6 +681,7 @@ class MediaTttChipControllerSenderTest : SysuiTestCase() { private const val APP_NAME = "Fake app name" private const val OTHER_DEVICE_NAME = "My Tablet" private const val PACKAGE_NAME = "com.android.systemui" +private const val TIMEOUT = 10000 private val routeInfo = MediaRoute2Info.Builder("id", OTHER_DEVICE_NAME) .addFeature("feature") diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderTest.java index 0d5a5fe086a3..3f641df376ed 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/interruption/HeadsUpViewBinderTest.java @@ -72,32 +72,32 @@ public class HeadsUpViewBinderTest extends SysuiTestCase { }); mViewBinder.bindHeadsUpView(mEntry, null); - verify(mLogger).startBindingHun(eq("key")); + verify(mLogger).startBindingHun(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); callback.get().onBindFinished(mEntry); - verify(mLogger).entryBoundSuccessfully(eq("key")); + verify(mLogger).entryBoundSuccessfully(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); mViewBinder.bindHeadsUpView(mEntry, null); - verify(mLogger).startBindingHun(eq("key")); + verify(mLogger).startBindingHun(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); callback.get().onBindFinished(mEntry); - verify(mLogger).entryBoundSuccessfully(eq("key")); + verify(mLogger).entryBoundSuccessfully(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); mViewBinder.unbindHeadsUpView(mEntry); - verify(mLogger).entryContentViewMarkedFreeable(eq("key")); + verify(mLogger).entryContentViewMarkedFreeable(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); callback.get().onBindFinished(mEntry); - verify(mLogger).entryUnbound(eq("key")); + verify(mLogger).entryUnbound(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); } @@ -111,12 +111,12 @@ public class HeadsUpViewBinderTest extends SysuiTestCase { }); mViewBinder.bindHeadsUpView(mEntry, null); - verify(mLogger).startBindingHun(eq("key")); + verify(mLogger).startBindingHun(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); mViewBinder.abortBindCallback(mEntry); - verify(mLogger).currentOngoingBindingAborted(eq("key")); + verify(mLogger).currentOngoingBindingAborted(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); @@ -135,18 +135,18 @@ public class HeadsUpViewBinderTest extends SysuiTestCase { }); mViewBinder.bindHeadsUpView(mEntry, null); - verify(mLogger).startBindingHun(eq("key")); + verify(mLogger).startBindingHun(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); mViewBinder.unbindHeadsUpView(mEntry); - verify(mLogger).currentOngoingBindingAborted(eq("key")); - verify(mLogger).entryContentViewMarkedFreeable(eq("key")); + verify(mLogger).currentOngoingBindingAborted(eq(mEntry)); + verify(mLogger).entryContentViewMarkedFreeable(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); callback.get().onBindFinished(mEntry); - verify(mLogger).entryUnbound(eq("key")); + verify(mLogger).entryUnbound(eq(mEntry)); verifyNoMoreInteractions(mLogger); clearInvocations(mLogger); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpManagerTest.java index f39d6875cffc..e2b9a9ee7826 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpManagerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/HeadsUpManagerTest.java @@ -106,7 +106,7 @@ public class HeadsUpManagerTest extends AlertingNotificationManagerTest { public void testHunRemovedLogging() { mAlertEntry.mEntry = mEntry; mHeadsUpManager.onAlertEntryRemoved(mAlertEntry); - verify(mLogger, times(1)).logNotificationActuallyRemoved(eq(mEntry.getKey())); + verify(mLogger, times(1)).logNotificationActuallyRemoved(eq(mEntry)); } @Test diff --git a/services/core/java/com/android/server/AnimationThread.java b/services/core/java/com/android/server/AnimationThread.java index fad743eafdaa..826e7b52a9df 100644 --- a/services/core/java/com/android/server/AnimationThread.java +++ b/services/core/java/com/android/server/AnimationThread.java @@ -40,7 +40,7 @@ public final class AnimationThread extends ServiceThread { sInstance = new AnimationThread(); sInstance.start(); sInstance.getLooper().setTraceTag(Trace.TRACE_TAG_WINDOW_MANAGER); - sHandler = new Handler(sInstance.getLooper()); + sHandler = makeSharedHandler(sInstance.getLooper()); } } diff --git a/services/core/java/com/android/server/PermissionThread.java b/services/core/java/com/android/server/PermissionThread.java new file mode 100644 index 000000000000..3f747a8cf008 --- /dev/null +++ b/services/core/java/com/android/server/PermissionThread.java @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2021 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.server; + +import android.os.Handler; +import android.os.HandlerExecutor; +import android.os.Looper; +import android.os.Trace; + +import com.android.internal.annotations.GuardedBy; + +import java.util.concurrent.Executor; + +/** + * Shared singleton thread for the system. This is a thread for handling + * calls to and from the PermissionController and handling synchronization + * between permissions and appops states. + */ +public final class PermissionThread extends ServiceThread { + private static final long SLOW_DISPATCH_THRESHOLD_MS = 100; + private static final long SLOW_DELIVERY_THRESHOLD_MS = 200; + + private static final Object sLock = new Object(); + + @GuardedBy("sLock") + private static PermissionThread sInstance; + private static Handler sHandler; + private static HandlerExecutor sHandlerExecutor; + + private PermissionThread() { + super("android.perm", android.os.Process.THREAD_PRIORITY_DEFAULT, /* allowIo= */ true); + } + + @GuardedBy("sLock") + private static void ensureThreadLocked() { + if (sInstance != null) { + return; + } + + sInstance = new PermissionThread(); + sInstance.start(); + final Looper looper = sInstance.getLooper(); + looper.setTraceTag(Trace.TRACE_TAG_SYSTEM_SERVER); + looper.setSlowLogThresholdMs( + SLOW_DISPATCH_THRESHOLD_MS, SLOW_DELIVERY_THRESHOLD_MS); + sHandler = new Handler(sInstance.getLooper()); + sHandlerExecutor = new HandlerExecutor(sHandler); + } + + /** + * Obtain a singleton instance of the PermissionThread. + */ + public static PermissionThread get() { + synchronized (sLock) { + ensureThreadLocked(); + return sInstance; + } + } + + /** + * Obtain a singleton instance of a handler executing in the PermissionThread. + */ + public static Handler getHandler() { + synchronized (sLock) { + ensureThreadLocked(); + return sHandler; + } + } + + + /** + * Obtain a singleton instance of an executor of the PermissionThread. + */ + public static Executor getExecutor() { + synchronized (sLock) { + ensureThreadLocked(); + return sHandlerExecutor; + } + } +} diff --git a/services/core/java/com/android/server/PersistentDataBlockService.java b/services/core/java/com/android/server/PersistentDataBlockService.java index 06c11fa4a20c..b2fc574dea20 100644 --- a/services/core/java/com/android/server/PersistentDataBlockService.java +++ b/services/core/java/com/android/server/PersistentDataBlockService.java @@ -35,14 +35,17 @@ import android.util.Slog; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; +import com.android.internal.util.DumpUtils; import libcore.io.IoUtils; import java.io.DataInputStream; import java.io.File; +import java.io.FileDescriptor; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; +import java.io.PrintWriter; import java.io.RandomAccessFile; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; @@ -679,6 +682,20 @@ public class PersistentDataBlockService extends SystemService { enforcePersistentDataBlockAccess(); return mContext.getString(R.string.config_persistentDataPackageName); } + + @Override + protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) { + if (!DumpUtils.checkDumpPermission(mContext, TAG, pw)) return; + + pw.println("mDataBlockFile: " + mDataBlockFile); + pw.println("mIsRunningDSU: " + mIsRunningDSU); + pw.println("mInitDoneSignal: " + mInitDoneSignal); + pw.println("mAllowedUid: " + mAllowedUid); + pw.println("mBlockDeviceSize: " + mBlockDeviceSize); + synchronized (mLock) { + pw.println("mIsWritable: " + mIsWritable); + } + } }; private PersistentDataBlockManagerInternal mInternalService = diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 36cd3dba9d5d..b31ce111ffba 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -15283,6 +15283,10 @@ public class ActivityManagerService extends IActivityManager.Stub app.processName, app.toShortString(), cpuLimit, app)) { mHandler.post(() -> { synchronized (ActivityManagerService.this) { + if (app.getThread() == null + || app.mState.getSetProcState() < ActivityManager.PROCESS_STATE_HOME) { + return; + } app.killLocked("excessive cpu " + cpuTimeUsed + " during " + uptimeSince + " dur=" + checkDur + " limit=" + cpuLimit, ApplicationExitInfo.REASON_EXCESSIVE_RESOURCE_USAGE, @@ -15308,6 +15312,10 @@ public class ActivityManagerService extends IActivityManager.Stub app.processName, r.toString(), cpuLimit, app)) { mHandler.post(() -> { synchronized (ActivityManagerService.this) { + if (app.getThread() == null + || app.mState.getSetProcState() < ActivityManager.PROCESS_STATE_HOME) { + return; + } mPhantomProcessList.killPhantomProcessGroupLocked(app, r, ApplicationExitInfo.REASON_EXCESSIVE_RESOURCE_USAGE, ApplicationExitInfo.SUBREASON_EXCESSIVE_CPU, diff --git a/services/core/java/com/android/server/am/OWNERS b/services/core/java/com/android/server/am/OWNERS index c4efbd7e8f51..15887f0df406 100644 --- a/services/core/java/com/android/server/am/OWNERS +++ b/services/core/java/com/android/server/am/OWNERS @@ -1,4 +1,3 @@ - # Applications & Processes yamasani@google.com jsharkey@google.com @@ -18,8 +17,6 @@ jji@google.com ogunwale@google.com # Permissions & Packages -svetoslavganov@google.com -toddke@google.com patb@google.com # Battery Stats @@ -35,8 +32,8 @@ narayan@google.com per-file *Assist* = file:/core/java/android/service/voice/OWNERS per-file *Voice* = file:/core/java/android/service/voice/OWNERS -per-file SettingsToPropertiesMapper.java = omakoto@google.com, svetoslavganov@google.com, yamasani@google.com +per-file SettingsToPropertiesMapper.java = omakoto@google.com, yamasani@google.com -per-file CarUserSwitchingDialog.java = keunyoung@google.com, felipeal@google.com, gurunagarajan@google.com +per-file CarUserSwitchingDialog.java = file:platform/packages/services/Car:/OWNERS per-file ContentProviderHelper.java = varunshah@google.com, omakoto@google.com, jsharkey@google.com, yamasani@google.com diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index 0d9463958276..178b6bbe755e 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java @@ -2794,15 +2794,6 @@ public final class ProcessList { } int N = procs.size(); - for (int i = 0; i < N; ++i) { - final ProcessRecord proc = procs.get(i).first; - try { - Process.setProcessFrozen(proc.getPid(), proc.uid, true); - } catch (Exception e) { - Slog.w(TAG, "Unable to freeze " + proc.getPid() + " " + proc.processName); - } - } - for (int i=0; i<N; i++) { final Pair<ProcessRecord, Boolean> proc = procs.get(i); removeProcessLocked(proc.first, callerWillRestart, allowRestart || proc.second, diff --git a/services/core/java/com/android/server/am/TEST_MAPPING b/services/core/java/com/android/server/am/TEST_MAPPING index e4f624d4ac28..f8558e80588c 100644 --- a/services/core/java/com/android/server/am/TEST_MAPPING +++ b/services/core/java/com/android/server/am/TEST_MAPPING @@ -58,8 +58,7 @@ "name": "FrameworksServicesTests", "options": [ { "include-filter": "com.android.server.am.BatteryStatsServiceTest" }, - { "include-filter": "com.android.server.am.MeasuredEnergySnapshotTest" }, - { "include-filter": "com.android.server.am.BatteryExternalStatsWorkerTest" } + { "include-filter": "com.android.server.power.stats.BatteryStatsTests" } ] } ], diff --git a/services/core/java/com/android/server/hdmi/HdmiCecController.java b/services/core/java/com/android/server/hdmi/HdmiCecController.java index 1a568c30c899..97e9c6458376 100644 --- a/services/core/java/com/android/server/hdmi/HdmiCecController.java +++ b/services/core/java/com/android/server/hdmi/HdmiCecController.java @@ -49,7 +49,6 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; -import java.util.LinkedList; import java.util.List; import java.util.NoSuchElementException; import java.util.concurrent.ArrayBlockingQueue; @@ -464,7 +463,7 @@ final class HdmiCecController { } int iterationStrategy = pickStrategy & Constants.POLL_ITERATION_STRATEGY_MASK; - LinkedList<Integer> pollingCandidates = new LinkedList<>(); + ArrayList<Integer> pollingCandidates = new ArrayList<>(); switch (iterationStrategy) { case Constants.POLL_ITERATION_IN_ORDER: for (int i = Constants.ADDR_TV; i <= Constants.ADDR_SPECIFIC_USE; ++i) { diff --git a/services/core/java/com/android/server/pm/permission/OneTimePermissionUserManager.java b/services/core/java/com/android/server/pm/permission/OneTimePermissionUserManager.java index 881f8707fdd8..661161f05d23 100644 --- a/services/core/java/com/android/server/pm/permission/OneTimePermissionUserManager.java +++ b/services/core/java/com/android/server/pm/permission/OneTimePermissionUserManager.java @@ -33,6 +33,7 @@ import android.util.Log; import android.util.SparseArray; import com.android.internal.annotations.GuardedBy; +import com.android.server.PermissionThread; /** * Class that handles one-time permissions for a user @@ -79,7 +80,8 @@ public class OneTimePermissionUserManager { mContext = context; mActivityManager = context.getSystemService(ActivityManager.class); mAlarmManager = context.getSystemService(AlarmManager.class); - mPermissionControllerManager = context.getSystemService(PermissionControllerManager.class); + mPermissionControllerManager = new PermissionControllerManager( + mContext, PermissionThread.getHandler()); mHandler = context.getMainThreadHandler(); } diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java index ccd906646d60..7d4cfdff2bfa 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceImpl.java @@ -122,6 +122,7 @@ import com.android.internal.util.Preconditions; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.FgThread; import com.android.server.LocalServices; +import com.android.server.PermissionThread; import com.android.server.ServiceThread; import com.android.server.SystemConfig; import com.android.server.Watchdog; @@ -2004,7 +2005,7 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt Preconditions.checkArgumentNonNegative(userId, "userId"); CompletableFuture<byte[]> backup = new CompletableFuture<>(); mPermissionControllerManager.getRuntimePermissionBackup(UserHandle.of(userId), - mContext.getMainExecutor(), backup::complete); + PermissionThread.getExecutor(), backup::complete); try { return backup.get(BACKUP_TIMEOUT_MILLIS, TimeUnit.MILLISECONDS); @@ -2055,7 +2056,7 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt } } mPermissionControllerManager.applyStagedRuntimePermissionBackup(packageName, - UserHandle.of(userId), mContext.getMainExecutor(), (hasMoreBackup) -> { + UserHandle.of(userId), PermissionThread.getExecutor(), (hasMoreBackup) -> { if (hasMoreBackup) { return; } @@ -4443,9 +4444,9 @@ public class PermissionManagerServiceImpl implements PermissionManagerServiceInt } } - mPermissionControllerManager = mContext.getSystemService(PermissionControllerManager.class); - mPermissionPolicyInternal = LocalServices.getService(PermissionPolicyInternal.class); - } + mPermissionControllerManager = new PermissionControllerManager( + mContext, PermissionThread.getHandler()); + mPermissionPolicyInternal = LocalServices.getService(PermissionPolicyInternal.class); } private static String getVolumeUuidForPackage(AndroidPackage pkg) { if (pkg == null) { diff --git a/services/core/java/com/android/server/policy/PermissionPolicyService.java b/services/core/java/com/android/server/policy/PermissionPolicyService.java index b56e1120f16a..9c9576984820 100644 --- a/services/core/java/com/android/server/policy/PermissionPolicyService.java +++ b/services/core/java/com/android/server/policy/PermissionPolicyService.java @@ -92,6 +92,7 @@ import com.android.internal.util.IntPair; import com.android.internal.util.function.pooled.PooledLambda; import com.android.server.FgThread; import com.android.server.LocalServices; +import com.android.server.PermissionThread; import com.android.server.SystemService; import com.android.server.notification.NotificationManagerInternal; import com.android.server.pm.UserManagerInternal; @@ -335,7 +336,7 @@ public final class PermissionPolicyService extends SystemService { PermissionControllerManager manager = mPermControllerManagers.get(user); if (manager == null) { manager = new PermissionControllerManager( - getUserContext(getContext(), user), FgThread.getHandler()); + getUserContext(getContext(), user), PermissionThread.getHandler()); mPermControllerManagers.put(user, manager); } manager.updateUserSensitiveForApp(uid); @@ -343,8 +344,9 @@ public final class PermissionPolicyService extends SystemService { }, UserHandle.ALL, intentFilter, null, null); PermissionControllerManager manager = new PermissionControllerManager( - getUserContext(getContext(), Process.myUserHandle()), FgThread.getHandler()); - FgThread.getHandler().postDelayed(manager::updateUserSensitive, + getUserContext(getContext(), Process.myUserHandle()), + PermissionThread.getHandler()); + PermissionThread.getHandler().postDelayed(manager::updateUserSensitive, USER_SENSITIVE_UPDATE_DELAY_MS); } @@ -371,6 +373,11 @@ public final class PermissionPolicyService extends SystemService { if (isStarted(changedUserId)) { synchronized (mLock) { if (mIsPackageSyncsScheduled.add(new Pair<>(packageName, changedUserId))) { + // TODO(b/165030092): migrate this to PermissionThread.getHandler(). + // synchronizePackagePermissionsAndAppOpsForUser is a heavy operation. + // Dispatched on a PermissionThread, it interferes with user switch. + // FgThread is busy and schedules it after most of the switch is done. + // A possible solution is to delay the callback. FgThread.getHandler().sendMessage(PooledLambda.obtainMessage( PermissionPolicyService ::synchronizePackagePermissionsAndAppOpsForUser, @@ -584,9 +591,9 @@ public final class PermissionPolicyService extends SystemService { final PermissionControllerManager permissionControllerManager = new PermissionControllerManager( getUserContext(getContext(), UserHandle.of(userId)), - FgThread.getHandler()); + PermissionThread.getHandler()); permissionControllerManager.grantOrUpgradeDefaultRuntimePermissions( - FgThread.getExecutor(), successful -> { + PermissionThread.getExecutor(), successful -> { if (successful) { future.complete(null); } else { @@ -690,7 +697,7 @@ public final class PermissionPolicyService extends SystemService { synchronized (mLock) { if (!mIsUidSyncScheduled.get(uid)) { mIsUidSyncScheduled.put(uid, true); - FgThread.getHandler().sendMessage(PooledLambda.obtainMessage( + PermissionThread.getHandler().sendMessage(PooledLambda.obtainMessage( PermissionPolicyService::resetAppOpPermissionsIfNotRequestedForUid, this, uid)); } diff --git a/services/core/java/com/android/server/storage/CacheQuotaStrategy.java b/services/core/java/com/android/server/storage/CacheQuotaStrategy.java index b2b58447a035..ff8b8d2b7b47 100644 --- a/services/core/java/com/android/server/storage/CacheQuotaStrategy.java +++ b/services/core/java/com/android/server/storage/CacheQuotaStrategy.java @@ -170,10 +170,8 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener { List<CacheQuotaHint> requests = new ArrayList<>(); UserManager um = mContext.getSystemService(UserManager.class); final List<UserInfo> users = um.getUsers(); - final int userCount = users.size(); final PackageManager packageManager = mContext.getPackageManager(); - for (int i = 0; i < userCount; i++) { - UserInfo info = users.get(i); + for (UserInfo info : users) { List<UsageStats> stats = mUsageStats.queryUsageStatsForUser(info.id, UsageStatsManager.INTERVAL_BEST, oneYearAgo, timeNow, /*obfuscateInstantApps=*/ false); @@ -181,7 +179,8 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener { continue; } - for (UsageStats stat : stats) { + for (int i = 0; i < stats.size(); ++i) { + UsageStats stat = stats.get(i); String packageName = stat.getPackageName(); try { // We need the app info to determine the uid and the uuid of the volume @@ -214,9 +213,7 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener { } private void pushProcessedQuotas(List<CacheQuotaHint> processedRequests) { - final int requestSize = processedRequests.size(); - for (int i = 0; i < requestSize; i++) { - CacheQuotaHint request = processedRequests.get(i); + for (CacheQuotaHint request : processedRequests) { long proposedQuota = request.getQuota(); if (proposedQuota == CacheQuotaHint.QUOTA_NOT_SET) { continue; @@ -321,11 +318,9 @@ public class CacheQuotaStrategy implements RemoteCallback.OnResultListener { List<CacheQuotaHint> requests, long bytesWhenCalculated) throws IOException { out.startDocument(null, true); out.startTag(null, CACHE_INFO_TAG); - int requestSize = requests.size(); out.attributeLong(null, ATTR_PREVIOUS_BYTES, bytesWhenCalculated); - for (int i = 0; i < requestSize; i++) { - CacheQuotaHint request = requests.get(i); + for (CacheQuotaHint request : requests) { out.startTag(null, TAG_QUOTA); String uuid = request.getVolumeUuid(); if (uuid != null) { diff --git a/services/core/java/com/android/server/vibrator/Vibration.java b/services/core/java/com/android/server/vibrator/Vibration.java index 78b1c20ac4b2..d79837be3583 100644 --- a/services/core/java/com/android/server/vibrator/Vibration.java +++ b/services/core/java/com/android/server/vibrator/Vibration.java @@ -61,12 +61,11 @@ final class Vibration { IGNORED_BACKGROUND, IGNORED_UNKNOWN_VIBRATION, IGNORED_UNSUPPORTED, - IGNORED_FOR_ALARM, IGNORED_FOR_EXTERNAL, + IGNORED_FOR_HIGHER_IMPORTANCE, IGNORED_FOR_ONGOING, IGNORED_FOR_POWER, IGNORED_FOR_RINGER_MODE, - IGNORED_FOR_RINGTONE, IGNORED_FOR_SETTINGS, IGNORED_SUPERSEDED, } diff --git a/services/core/java/com/android/server/vibrator/VibratorManagerService.java b/services/core/java/com/android/server/vibrator/VibratorManagerService.java index f0911ca62027..5ac2f4f27452 100644 --- a/services/core/java/com/android/server/vibrator/VibratorManagerService.java +++ b/services/core/java/com/android/server/vibrator/VibratorManagerService.java @@ -713,14 +713,15 @@ public class VibratorManagerService extends IVibratorManagerService.Stub { case IGNORED_ERROR_APP_OPS: Slog.w(TAG, "Would be an error: vibrate from uid " + uid); break; - case IGNORED_FOR_ALARM: + case IGNORED_FOR_EXTERNAL: if (DEBUG) { - Slog.d(TAG, "Ignoring incoming vibration in favor of alarm vibration"); + Slog.d(TAG, "Ignoring incoming vibration for current external vibration"); } break; - case IGNORED_FOR_EXTERNAL: + case IGNORED_FOR_HIGHER_IMPORTANCE: if (DEBUG) { - Slog.d(TAG, "Ignoring incoming vibration for current external vibration"); + Slog.d(TAG, "Ignoring incoming vibration in favor of ongoing vibration" + + " with higher importance"); } break; case IGNORED_FOR_ONGOING: @@ -734,12 +735,6 @@ public class VibratorManagerService extends IVibratorManagerService.Stub { + attrs); } break; - case IGNORED_FOR_RINGTONE: - if (DEBUG) { - Slog.d(TAG, "Ignoring incoming vibration in favor of ringtone vibration"); - } - break; - default: if (DEBUG) { Slog.d(TAG, "Vibration for uid=" + uid + " and with attrs=" + attrs @@ -812,20 +807,43 @@ public class VibratorManagerService extends IVibratorManagerService.Stub { return null; } - if (currentVibration.attrs.getUsage() == VibrationAttributes.USAGE_ALARM) { - return Vibration.Status.IGNORED_FOR_ALARM; - } - - if (currentVibration.attrs.getUsage() == VibrationAttributes.USAGE_RINGTONE) { - return Vibration.Status.IGNORED_FOR_RINGTONE; + int currentUsage = currentVibration.attrs.getUsage(); + int newUsage = vib.attrs.getUsage(); + if (getVibrationImportance(currentUsage) > getVibrationImportance(newUsage)) { + // Current vibration has higher importance than this one and should not be cancelled. + return Vibration.Status.IGNORED_FOR_HIGHER_IMPORTANCE; } if (currentVibration.isRepeating()) { + // Current vibration is repeating, assume it's more important. return Vibration.Status.IGNORED_FOR_ONGOING; } + return null; } + private static int getVibrationImportance(@VibrationAttributes.Usage int usage) { + switch (usage) { + case VibrationAttributes.USAGE_RINGTONE: + return 5; + case VibrationAttributes.USAGE_ALARM: + return 4; + case VibrationAttributes.USAGE_NOTIFICATION: + return 3; + case VibrationAttributes.USAGE_COMMUNICATION_REQUEST: + case VibrationAttributes.USAGE_ACCESSIBILITY: + return 2; + case VibrationAttributes.USAGE_HARDWARE_FEEDBACK: + case VibrationAttributes.USAGE_PHYSICAL_EMULATION: + return 1; + case VibrationAttributes.USAGE_MEDIA: + case VibrationAttributes.USAGE_TOUCH: + case VibrationAttributes.USAGE_UNKNOWN: + default: + return 0; + } + } + /** * Check if given vibration should be ignored by this service. * diff --git a/services/core/java/com/android/server/wm/ActivityRecord.java b/services/core/java/com/android/server/wm/ActivityRecord.java index 0350dfcd8230..b70f7a0fd213 100644 --- a/services/core/java/com/android/server/wm/ActivityRecord.java +++ b/services/core/java/com/android/server/wm/ActivityRecord.java @@ -2467,8 +2467,16 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A if (!newTask && taskSwitch && processRunning && !activityCreated && task.intent != null && mActivityComponent.equals(task.intent.getComponent())) { final ActivityRecord topAttached = task.getActivity(ActivityRecord::attachedToProcess); - if (topAttached != null && topAttached.isSnapshotCompatible(snapshot)) { - return STARTING_WINDOW_TYPE_SNAPSHOT; + if (topAttached != null) { + if (topAttached.isSnapshotCompatible(snapshot) + // This trampoline must be the same rotation. + && mDisplayContent.getDisplayRotation().rotationForOrientation(mOrientation, + mDisplayContent.getRotation()) == snapshot.getRotation()) { + return STARTING_WINDOW_TYPE_SNAPSHOT; + } + // No usable snapshot. And a splash screen may also be weird because an existing + // activity may be shown right after the trampoline is finished. + return STARTING_WINDOW_TYPE_NONE; } } final boolean isActivityHome = isActivityTypeHome(); @@ -8174,7 +8182,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A resolvedBounds.set(containingBounds); final float letterboxAspectRatioOverride = - mWmService.mLetterboxConfiguration.getFixedOrientationLetterboxAspectRatio(); + mLetterboxUiController.getFixedOrientationLetterboxAspectRatio(); final float desiredAspectRatio = letterboxAspectRatioOverride > MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO ? letterboxAspectRatioOverride : computeAspectRatio(parentBounds); @@ -8727,18 +8735,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A * Returns the min aspect ratio of this activity. */ private float getMinAspectRatio() { - float infoAspectRatio = info.getMinAspectRatio(getRequestedOrientation()); - // Complying with the CDD 7.1.1.2 requirement for unresizble apps: - // https://source.android.com/compatibility/12/android-12-cdd#7112_screen_aspect_ratio - return infoAspectRatio < 1f && info.resizeMode == RESIZE_MODE_UNRESIZEABLE - // TODO(233582832): Consider removing fixed-orientation condition. - // Some apps switching from tablet to phone layout at the certain size - // threshold. This may lead to flickering on tablets in landscape orientation - // if an app sets orientation to portrait dynamically because of aspect ratio - // restriction applied here. - && getRequestedConfigurationOrientation() != ORIENTATION_UNDEFINED - ? mLetterboxUiController.getDefaultMinAspectRatioForUnresizableApps() - : infoAspectRatio; + return info.getMinAspectRatio(getRequestedOrientation()); } /** diff --git a/services/core/java/com/android/server/wm/LetterboxConfiguration.java b/services/core/java/com/android/server/wm/LetterboxConfiguration.java index 2d227b66b3ce..08715b160b9a 100644 --- a/services/core/java/com/android/server/wm/LetterboxConfiguration.java +++ b/services/core/java/com/android/server/wm/LetterboxConfiguration.java @@ -37,11 +37,6 @@ final class LetterboxConfiguration { */ static final float MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO = 1.0f; - // Min allowed aspect ratio for unresizable apps which is used when an app doesn't specify - // android:minAspectRatio in accordance with the CDD 7.1.1.2 requirement: - // https://source.android.com/compatibility/12/android-12-cdd#7112_screen_aspect_ratio - static final float MIN_UNRESIZABLE_ASPECT_RATIO = 4 / 3f; - /** Enum for Letterbox background type. */ @Retention(RetentionPolicy.SOURCE) @IntDef({LETTERBOX_BACKGROUND_SOLID_COLOR, LETTERBOX_BACKGROUND_APP_COLOR_BACKGROUND, @@ -109,9 +104,7 @@ final class LetterboxConfiguration { // MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO will be ignored. private float mFixedOrientationLetterboxAspectRatio; - // Default min aspect ratio for unresizable apps which is used when an app doesn't specify - // android:minAspectRatio in accordance with the CDD 7.1.1.2 requirement: - // https://source.android.com/compatibility/12/android-12-cdd#7112_screen_aspect_ratio + // Default min aspect ratio for unresizable apps that are eligible for the size compat mode. private float mDefaultMinAspectRatioForUnresizableApps; // Corners radius for activities presented in the letterbox mode, values < 0 will be ignored. @@ -250,13 +243,7 @@ final class LetterboxConfiguration { } /** - * Resets the min aspect ratio for unresizable apps which is used when an app doesn't specify - * {@code android:minAspectRatio} to {@link - * R.dimen.config_letterboxDefaultMinAspectRatioForUnresizableApps}. - * - * @throws AssertionError if {@link - * R.dimen.config_letterboxDefaultMinAspectRatioForUnresizableApps} is < {@link - * #MIN_UNRESIZABLE_ASPECT_RATIO}. + * Resets the min aspect ratio for unresizable apps that are eligible for size compat mode. */ void resetDefaultMinAspectRatioForUnresizableApps() { setDefaultMinAspectRatioForUnresizableApps(mContext.getResources().getFloat( @@ -264,25 +251,16 @@ final class LetterboxConfiguration { } /** - * Gets the min aspect ratio for unresizable apps which is used when an app doesn't specify - * {@code android:minAspectRatio}. + * Gets the min aspect ratio for unresizable apps that are eligible for size compat mode. */ float getDefaultMinAspectRatioForUnresizableApps() { return mDefaultMinAspectRatioForUnresizableApps; } /** - * Overrides the min aspect ratio for unresizable apps which is used when an app doesn't - * specify {@code android:minAspectRatio}. - * - * @throws AssertionError if given value is < {@link #MIN_UNRESIZABLE_ASPECT_RATIO}. + * Overrides the min aspect ratio for unresizable apps that are eligible for size compat mode. */ void setDefaultMinAspectRatioForUnresizableApps(float aspectRatio) { - if (aspectRatio < MIN_UNRESIZABLE_ASPECT_RATIO) { - throw new AssertionError( - "Unexpected min aspect ratio for unresizable apps, it should be <= " - + MIN_UNRESIZABLE_ASPECT_RATIO + " but was " + aspectRatio); - } mDefaultMinAspectRatioForUnresizableApps = aspectRatio; } diff --git a/services/core/java/com/android/server/wm/LetterboxUiController.java b/services/core/java/com/android/server/wm/LetterboxUiController.java index df9a87ea1ab0..f849d2886ba1 100644 --- a/services/core/java/com/android/server/wm/LetterboxUiController.java +++ b/services/core/java/com/android/server/wm/LetterboxUiController.java @@ -28,6 +28,7 @@ import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_BACKGROUND_ import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_BACKGROUND_APP_COLOR_BACKGROUND_FLOATING; import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_BACKGROUND_SOLID_COLOR; import static com.android.server.wm.LetterboxConfiguration.LETTERBOX_BACKGROUND_WALLPAPER; +import static com.android.server.wm.LetterboxConfiguration.MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO; import static com.android.server.wm.LetterboxConfiguration.letterboxBackgroundTypeToString; import android.annotation.Nullable; @@ -211,10 +212,19 @@ final class LetterboxUiController { : mLetterboxConfiguration.getLetterboxVerticalPositionMultiplier(); } - float getDefaultMinAspectRatioForUnresizableApps() { + float getFixedOrientationLetterboxAspectRatio() { + return mActivityRecord.shouldCreateCompatDisplayInsets() + ? getDefaultMinAspectRatioForUnresizableApps() + : mLetterboxConfiguration.getFixedOrientationLetterboxAspectRatio(); + } + + private float getDefaultMinAspectRatioForUnresizableApps() { if (!mLetterboxConfiguration.getIsSplitScreenAspectRatioForUnresizableAppsEnabled() || mActivityRecord.getDisplayContent() == null) { - return mLetterboxConfiguration.getDefaultMinAspectRatioForUnresizableApps(); + return mLetterboxConfiguration.getDefaultMinAspectRatioForUnresizableApps() + > MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO + ? mLetterboxConfiguration.getDefaultMinAspectRatioForUnresizableApps() + : mLetterboxConfiguration.getFixedOrientationLetterboxAspectRatio(); } int dividerWindowWidth = @@ -226,10 +236,10 @@ final class LetterboxUiController { // Getting the same aspect ratio that apps get in split screen. Rect bounds = new Rect(mActivityRecord.getDisplayContent().getBounds()); if (bounds.width() >= bounds.height()) { - bounds.inset(/* dx */ dividerSize, /* dy */ 0); + bounds.inset(/* dx */ dividerSize / 2, /* dy */ 0); bounds.right = bounds.centerX(); } else { - bounds.inset(/* dx */ 0, /* dy */ dividerSize); + bounds.inset(/* dx */ 0, /* dy */ dividerSize / 2); bounds.bottom = bounds.centerY(); } return computeAspectRatio(bounds); diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index 7e383f6c0cab..da3e56e60148 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -1237,11 +1237,6 @@ class RootWindowContainer extends WindowContainer<DisplayContent> } @Override - void scheduleAnimation() { - mWmService.scheduleAnimationLocked(); - } - - @Override protected void removeChild(DisplayContent dc) { super.removeChild(dc); if (mTopFocusedDisplayId == dc.getDisplayId()) { diff --git a/services/core/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java index 30b50839cd35..8d03e2e9632a 100644 --- a/services/core/java/com/android/server/wm/Session.java +++ b/services/core/java/com/android/server/wm/Session.java @@ -250,6 +250,11 @@ class Session extends IWindowSession.Stub implements IBinder.DeathRecipient { } @Override + public boolean cancelDraw(IWindow window) { + return mService.cancelDraw(this, window); + } + + @Override public int relayout(IWindow window, WindowManager.LayoutParams attrs, int requestedWidth, int requestedHeight, int viewFlags, int flags, ClientWindowFrames outFrames, MergedConfiguration mergedConfiguration, diff --git a/services/core/java/com/android/server/wm/StartingSurfaceController.java b/services/core/java/com/android/server/wm/StartingSurfaceController.java index 68dbb0607ac1..0bb773ae5e41 100644 --- a/services/core/java/com/android/server/wm/StartingSurfaceController.java +++ b/services/core/java/com/android/server/wm/StartingSurfaceController.java @@ -158,14 +158,13 @@ public class StartingSurfaceController { + topFullscreenActivity); return null; } - if (topFullscreenActivity.getWindowConfiguration().getRotation() - != taskSnapshot.getRotation()) { + if (activity.mDisplayContent.getRotation() != taskSnapshot.getRotation()) { // The snapshot should have been checked by ActivityRecord#isSnapshotCompatible // that the activity will be updated to the same rotation as the snapshot. Since // the transition is not started yet, fixed rotation transform needs to be applied // earlier to make the snapshot show in a rotated container. activity.mDisplayContent.handleTopActivityLaunchingInDifferentOrientation( - topFullscreenActivity, false /* checkOpening */); + activity, false /* checkOpening */); } mService.mAtmService.mTaskOrganizerController.addStartingWindow(task, activity, 0 /* launchTheme */, taskSnapshot); diff --git a/services/core/java/com/android/server/wm/SurfaceAnimationThread.java b/services/core/java/com/android/server/wm/SurfaceAnimationThread.java index 1259ee901e4c..8ea715c4084e 100644 --- a/services/core/java/com/android/server/wm/SurfaceAnimationThread.java +++ b/services/core/java/com/android/server/wm/SurfaceAnimationThread.java @@ -40,7 +40,7 @@ public final class SurfaceAnimationThread extends ServiceThread { sInstance = new SurfaceAnimationThread(); sInstance.start(); sInstance.getLooper().setTraceTag(Trace.TRACE_TAG_WINDOW_MANAGER); - sHandler = new Handler(sInstance.getLooper()); + sHandler = makeSharedHandler(sInstance.getLooper()); } } diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index b5be73166568..1525fb3930d6 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -3615,30 +3615,35 @@ class Task extends TaskFragment { } @Override + String toFullString() { + final StringBuilder sb = new StringBuilder(192); + sb.append(this); + sb.setLength(sb.length() - 1); // Remove tail '}'. + sb.append(" U="); + sb.append(mUserId); + final Task rootTask = getRootTask(); + if (rootTask != this) { + sb.append(" rootTaskId="); + sb.append(rootTask.mTaskId); + } + sb.append(" visible="); + sb.append(shouldBeVisible(null /* starting */)); + sb.append(" visibleRequested="); + sb.append(isVisibleRequested()); + sb.append(" mode="); + sb.append(windowingModeToString(getWindowingMode())); + sb.append(" translucent="); + sb.append(isTranslucent(null /* starting */)); + sb.append(" sz="); + sb.append(getChildCount()); + sb.append('}'); + return sb.toString(); + } + + @Override public String toString() { + if (stringName != null) return stringName; StringBuilder sb = new StringBuilder(128); - if (stringName != null) { - sb.append(stringName); - sb.append(" U="); - sb.append(mUserId); - final Task rootTask = getRootTask(); - if (rootTask != this) { - sb.append(" rootTaskId="); - sb.append(rootTask.mTaskId); - } - sb.append(" visible="); - sb.append(shouldBeVisible(null /* starting */)); - sb.append(" visibleRequested="); - sb.append(isVisibleRequested()); - sb.append(" mode="); - sb.append(windowingModeToString(getWindowingMode())); - sb.append(" translucent="); - sb.append(isTranslucent(null /* starting */)); - sb.append(" sz="); - sb.append(getChildCount()); - sb.append('}'); - return sb.toString(); - } sb.append("Task{"); sb.append(Integer.toHexString(System.identityHashCode(this))); sb.append(" #"); @@ -3653,11 +3658,9 @@ class Task extends TaskFragment { } else if (affinityIntent != null && affinityIntent.getComponent() != null) { sb.append(" aI="); sb.append(affinityIntent.getComponent().flattenToShortString()); - } else { - sb.append(" ??"); } - stringName = sb.toString(); - return toString(); + sb.append('}'); + return stringName = sb.toString(); } /** diff --git a/services/core/java/com/android/server/wm/TaskDisplayArea.java b/services/core/java/com/android/server/wm/TaskDisplayArea.java index 1327e50cd710..4bb023c1c218 100644 --- a/services/core/java/com/android/server/wm/TaskDisplayArea.java +++ b/services/core/java/com/android/server/wm/TaskDisplayArea.java @@ -1939,7 +1939,7 @@ final class TaskDisplayArea extends DisplayArea<WindowContainer> { continue; } final Task rootTask = child.asTask(); - pw.println(doublePrefix + "* " + rootTask); + pw.println(doublePrefix + "* " + rootTask.toFullString()); rootTask.dump(pw, triplePrefix, dumpAll); } } diff --git a/services/core/java/com/android/server/wm/TaskFragment.java b/services/core/java/com/android/server/wm/TaskFragment.java index 43e02d9f35b4..a1c22d69774b 100644 --- a/services/core/java/com/android/server/wm/TaskFragment.java +++ b/services/core/java/com/android/server/wm/TaskFragment.java @@ -2576,6 +2576,32 @@ class TaskFragment extends WindowContainer<WindowContainer> { return getWindowingMode() == WINDOWING_MODE_FULLSCREEN || matchParentBounds(); } + String toFullString() { + final StringBuilder sb = new StringBuilder(128); + sb.append(this); + sb.setLength(sb.length() - 1); // Remove tail '}'. + if (mTaskFragmentOrganizerUid != INVALID_UID) { + sb.append(" organizerUid="); + sb.append(mTaskFragmentOrganizerUid); + } + if (mTaskFragmentOrganizerProcessName != null) { + sb.append(" organizerProc="); + sb.append(mTaskFragmentOrganizerProcessName); + } + if (mAdjacentTaskFragment != null) { + sb.append(" adjacent="); + sb.append(mAdjacentTaskFragment); + } + sb.append('}'); + return sb.toString(); + } + + @Override + public String toString() { + return "TaskFragment{" + Integer.toHexString(System.identityHashCode(this)) + + " mode=" + WindowConfiguration.windowingModeToString(getWindowingMode()) + "}"; + } + boolean dump(String prefix, FileDescriptor fd, PrintWriter pw, boolean dumpAll, boolean dumpClient, String dumpPackage, final boolean needSep, Runnable header) { boolean printed = false; @@ -2614,7 +2640,7 @@ class TaskFragment extends WindowContainer<WindowContainer> { } void dumpInner(String prefix, PrintWriter pw, boolean dumpAll, String dumpPackage) { - pw.print(prefix); pw.print("* "); pw.println(this); + pw.print(prefix); pw.print("* "); pw.println(toFullString()); final Rect bounds = getRequestedOverrideBounds(); if (!bounds.isEmpty()) { pw.println(prefix + " mBounds=" + bounds); @@ -2635,10 +2661,11 @@ class TaskFragment extends WindowContainer<WindowContainer> { final String doublePrefix = prefix + " "; for (int i = mChildren.size() - 1; i >= 0; i--) { final WindowContainer<?> child = mChildren.get(i); - pw.println(prefix + "* " + child); + final TaskFragment tf = child.asTaskFragment(); + pw.println(prefix + "* " + (tf != null ? tf.toFullString() : child)); // Only dump non-activity because full activity info is already printed by // RootWindowContainer#dumpActivities. - if (child.asActivityRecord() == null) { + if (tf != null) { child.dump(pw, doublePrefix, dumpAll); } } diff --git a/services/core/java/com/android/server/wm/TaskSnapshotController.java b/services/core/java/com/android/server/wm/TaskSnapshotController.java index 814656db9fa0..534616fb7207 100644 --- a/services/core/java/com/android/server/wm/TaskSnapshotController.java +++ b/services/core/java/com/android/server/wm/TaskSnapshotController.java @@ -47,6 +47,7 @@ import android.graphics.RenderNode; import android.hardware.HardwareBuffer; import android.os.Environment; import android.os.Handler; +import android.os.Trace; import android.util.ArraySet; import android.util.Pair; import android.util.Slog; @@ -391,8 +392,10 @@ class TaskSnapshotController { SurfaceControl.ScreenshotHardwareBuffer createTaskSnapshot(@NonNull Task task, TaskSnapshot.Builder builder) { Point taskSize = new Point(); + Trace.traceBegin(Trace.TRACE_TAG_WINDOW_MANAGER, "createTaskSnapshot"); final SurfaceControl.ScreenshotHardwareBuffer taskSnapshot = createTaskSnapshot(task, mHighResTaskSnapshotScale, builder.getPixelFormat(), taskSize, builder); + Trace.traceEnd(Trace.TRACE_TAG_WINDOW_MANAGER); builder.setTaskSize(taskSize); return taskSnapshot; } diff --git a/services/core/java/com/android/server/wm/WindowContainer.java b/services/core/java/com/android/server/wm/WindowContainer.java index c318f5794860..7f1096b5bf35 100644 --- a/services/core/java/com/android/server/wm/WindowContainer.java +++ b/services/core/java/com/android/server/wm/WindowContainer.java @@ -2698,9 +2698,7 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer< * will be applied. */ void scheduleAnimation() { - if (mParent != null) { - mParent.scheduleAnimation(); - } + mWmService.scheduleAnimationLocked(); } /** diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index 0e6903e1336f..d5fa71da3b80 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -89,6 +89,7 @@ import static android.view.WindowManager.REMOVE_CONTENT_MODE_UNDEFINED; import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_RELAUNCH; import static android.view.WindowManagerGlobal.ADD_OKAY; +import static android.view.WindowManagerGlobal.RELAYOUT_RES_CANCEL_AND_REDRAW; import static android.view.WindowManagerGlobal.RELAYOUT_RES_SURFACE_CHANGED; import static android.view.WindowManagerPolicyConstants.NAV_BAR_INVALID; import static android.view.WindowManagerPolicyConstants.TYPE_LAYER_MULTIPLIER; @@ -2205,6 +2206,20 @@ public class WindowManagerService extends IWindowManager.Stub == PackageManager.PERMISSION_GRANTED; } + /** + * Returns whether this window can proceed with drawing or needs to retry later. + */ + public boolean cancelDraw(Session session, IWindow client) { + synchronized (mGlobalLock) { + final WindowState win = windowForClientLocked(session, client, false); + if (win == null) { + return false; + } + + return win.cancelAndRedraw(); + } + } + public int relayoutWindow(Session session, IWindow client, LayoutParams attrs, int requestedWidth, int requestedHeight, int viewVisibility, int flags, ClientWindowFrames outFrames, MergedConfiguration mergedConfiguration, @@ -2221,6 +2236,11 @@ public class WindowManagerService extends IWindowManager.Stub if (win == null) { return 0; } + + if (win.cancelAndRedraw()) { + result |= RELAYOUT_RES_CANCEL_AND_REDRAW; + } + final DisplayContent displayContent = win.getDisplayContent(); final DisplayPolicy displayPolicy = displayContent.getDisplayPolicy(); @@ -2523,6 +2543,7 @@ public class WindowManagerService extends IWindowManager.Stub win.mLastSeqIdSentToRelayout = win.mSyncSeqId; outSyncIdBundle.putInt("seqid", win.mSyncSeqId); + win.mAlreadyRequestedSync = true; } else { outSyncIdBundle.putInt("seqid", -1); } @@ -6035,9 +6056,7 @@ public class WindowManagerService extends IWindowManager.Stub /** Note that Locked in this case is on mLayoutToAnim */ void scheduleAnimationLocked() { - if (mAnimator != null) { - mAnimator.scheduleAnimation(); - } + mAnimator.scheduleAnimation(); } boolean updateFocusedWindowLocked(int mode, boolean updateInputWindows) { diff --git a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java index 02f056cd33af..ff43a96d6afc 100644 --- a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java +++ b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java @@ -1370,9 +1370,10 @@ public class WindowManagerShellCommand extends ShellCommand { pw.println(" be ignored and framework implementation will determine aspect ratio."); pw.println(" --minAspectRatioForUnresizable aspectRatio"); pw.println(" Default min aspect ratio for unresizable apps which is used when an"); - pw.println(" app doesn't specify android:minAspectRatio. An exception will be"); - pw.println(" thrown if aspectRatio < " - + LetterboxConfiguration.MIN_UNRESIZABLE_ASPECT_RATIO); + pw.println(" app is eligible for the size compat mode. If aspectRatio <= " + + LetterboxConfiguration.MIN_FIXED_ORIENTATION_LETTERBOX_ASPECT_RATIO); + pw.println(" both it and R.dimen.config_fixedOrientationLetterboxAspectRatio will"); + pw.println(" be ignored and framework implementation will determine aspect ratio."); pw.println(" --cornerRadius radius"); pw.println(" Corners radius for activities in the letterbox mode. If radius < 0,"); pw.println(" both it and R.integer.config_letterboxActivityCornersRadius will be"); diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 46cf5c9348cc..342b04f135c7 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -391,6 +391,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP */ int mSyncSeqId = 0; int mLastSeqIdSentToRelayout = 0; + boolean mAlreadyRequestedSync; /** * {@code true} when the client was still drawing for sync when the sync-set was finished or @@ -809,7 +810,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP }; private final Consumer<SurfaceControl.Transaction> mSetSurfacePositionConsumer = t -> { - if (mSurfaceControl != null && mSurfaceControl.isValid()) { + // Only apply the position to the surface when there's no leash created. + if (mSurfaceControl != null && mSurfaceControl.isValid() && !mSurfaceAnimator.hasLeash()) { t.setPosition(mSurfaceControl, mSurfacePosition.x, mSurfacePosition.y); } }; @@ -3921,7 +3923,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP mClient.resized(mClientWindowFrames, reportDraw, mLastReportedConfiguration, getCompatInsetsState(), forceRelayout, alwaysConsumeSystemBars, displayId, mSyncSeqId, resizeMode); - if (drawPending && prevRotation != mLastReportedConfiguration + if (drawPending && prevRotation >= 0 && prevRotation != mLastReportedConfiguration .getMergedConfiguration().windowConfiguration.getRotation()) { mOrientationChangeRedrawRequestTime = SystemClock.elapsedRealtime(); ProtoLog.v(WM_DEBUG_ORIENTATION, @@ -4405,6 +4407,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP pw.println(prefix + "Requested visibilities: " + visibilityString); } } + + pw.println(prefix + "mAlreadyRequestedSync=" + mAlreadyRequestedSync); } @Override @@ -5932,6 +5936,7 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP if (mSyncState == SYNC_STATE_WAITING_FOR_DRAW && mRedrawForSyncReported) { mClientWasDrawingForSync = true; } + mAlreadyRequestedSync = false; super.finishSync(outMergedTransaction, cancel); } @@ -6198,4 +6203,8 @@ class WindowState extends WindowContainer<WindowState> implements WindowManagerP @WindowTraceLogLevel int logLevel) { dumpDebug(proto, fieldId, logLevel); } + + public boolean cancelAndRedraw() { + return mSyncState != SYNC_STATE_NONE && mAlreadyRequestedSync; + } } diff --git a/services/core/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java index ab72e49f1e4f..437c9344d793 100644 --- a/services/core/java/com/android/server/wm/WindowToken.java +++ b/services/core/java/com/android/server/wm/WindowToken.java @@ -448,8 +448,14 @@ class WindowToken extends WindowContainer<WindowState> { if (mFixedRotationTransformState != null) { mFixedRotationTransformState.disassociate(this); } + // TODO(b/233855302): Remove TaskFragment override if the DisplayContent uses the same + // bounds for screenLayout calculation. + final Configuration overrideConfig = new Configuration(config); + overrideConfig.screenLayout = TaskFragment.computeScreenLayoutOverride( + overrideConfig.screenLayout, overrideConfig.screenWidthDp, + overrideConfig.screenHeightDp); mFixedRotationTransformState = new FixedRotationTransformState(info, displayFrames, - new Configuration(config), mDisplayContent.getRotation()); + overrideConfig, mDisplayContent.getRotation()); mFixedRotationTransformState.mAssociatedTokens.add(this); mDisplayContent.getDisplayPolicy().simulateLayoutDisplay(displayFrames); onFixedRotationStatePrepared(); diff --git a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java index c735bb7add0a..8a96febcd1e9 100644 --- a/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/vibrator/VibratorManagerServiceTest.java @@ -778,8 +778,7 @@ public class VibratorManagerServiceTest { assertTrue(waitUntil(s -> !mVibratorProviders.get(1).getAllEffectSegments().isEmpty(), service, TEST_TIMEOUT_MILLIS)); - vibrate(service, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), - HAPTIC_FEEDBACK_ATTRS); + vibrate(service, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), HAPTIC_FEEDBACK_ATTRS); // Wait before checking it never played a second effect. assertFalse(waitUntil(s -> mVibratorProviders.get(1).getAllEffectSegments().size() > 1, @@ -793,49 +792,78 @@ public class VibratorManagerServiceTest { } @Test - public void vibrate_withOngoingAlarmVibration_ignoresEffect() throws Exception { + public void vibrate_withNewRepeatingVibration_cancelsOngoingEffect() throws Exception { mockVibrators(1); mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL); VibratorManagerService service = createSystemReadyService(); VibrationEffect alarmEffect = VibrationEffect.createWaveform( new long[]{10_000, 10_000}, new int[]{128, 255}, -1); - vibrate(service, alarmEffect, new VibrationAttributes.Builder().setUsage( - VibrationAttributes.USAGE_ALARM).build()); + vibrate(service, alarmEffect, ALARM_ATTRS); // VibrationThread will start this vibration async, so wait before checking it started. assertTrue(waitUntil(s -> !mVibratorProviders.get(1).getAllEffectSegments().isEmpty(), service, TEST_TIMEOUT_MILLIS)); - vibrate(service, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), - HAPTIC_FEEDBACK_ATTRS); + VibrationEffect repeatingEffect = VibrationEffect.createWaveform( + new long[]{10_000, 10_000}, new int[]{128, 255}, 1); + vibrate(service, repeatingEffect, NOTIFICATION_ATTRS); - // Wait before checking it never played a second effect. - assertFalse(waitUntil(s -> mVibratorProviders.get(1).getAllEffectSegments().size() > 1, - service, /* timeout= */ 50)); + // VibrationThread will start this vibration async, so wait before checking it started. + assertTrue(waitUntil(s -> mVibratorProviders.get(1).getAllEffectSegments().size() > 1, + service, TEST_TIMEOUT_MILLIS)); + + // The second vibration should have recorded that the vibrators were turned on. + verify(mBatteryStatsMock, times(2)).noteVibratorOn(anyInt(), anyLong()); } @Test - public void vibrate_withOngoingRingtoneVibration_ignoresEffect() throws Exception { + public void vibrate_withOngoingHigherImportanceVibration_ignoresEffect() throws Exception { mockVibrators(1); mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL); VibratorManagerService service = createSystemReadyService(); - VibrationEffect alarmEffect = VibrationEffect.createWaveform( + VibrationEffect effect = VibrationEffect.createWaveform( new long[]{10_000, 10_000}, new int[]{128, 255}, -1); - vibrate(service, alarmEffect, new VibrationAttributes.Builder().setUsage( - VibrationAttributes.USAGE_RINGTONE).build()); + vibrate(service, effect, ALARM_ATTRS); // VibrationThread will start this vibration async, so wait before checking it started. assertTrue(waitUntil(s -> !mVibratorProviders.get(1).getAllEffectSegments().isEmpty(), service, TEST_TIMEOUT_MILLIS)); - vibrate(service, VibrationEffect.get(VibrationEffect.EFFECT_CLICK), - HAPTIC_FEEDBACK_ATTRS); + vibrate(service, effect, HAPTIC_FEEDBACK_ATTRS); // Wait before checking it never played a second effect. assertFalse(waitUntil(s -> mVibratorProviders.get(1).getAllEffectSegments().size() > 1, service, /* timeout= */ 50)); + + // The second vibration shouldn't have recorded that the vibrators were turned on. + verify(mBatteryStatsMock, times(1)).noteVibratorOn(anyInt(), anyLong()); + } + + @Test + public void vibrate_withOngoingLowerImportanceVibration_cancelsOngoingEffect() + throws Exception { + mockVibrators(1); + mVibratorProviders.get(1).setCapabilities(IVibrator.CAP_AMPLITUDE_CONTROL); + VibratorManagerService service = createSystemReadyService(); + + VibrationEffect effect = VibrationEffect.createWaveform( + new long[]{10_000, 10_000}, new int[]{128, 255}, -1); + vibrate(service, effect, HAPTIC_FEEDBACK_ATTRS); + + // VibrationThread will start this vibration async, so wait before checking it started. + assertTrue(waitUntil(s -> !mVibratorProviders.get(1).getAllEffectSegments().isEmpty(), + service, TEST_TIMEOUT_MILLIS)); + + vibrate(service, effect, RINGTONE_ATTRS); + + // VibrationThread will start this vibration async, so wait before checking it started. + assertTrue(waitUntil(s -> mVibratorProviders.get(1).getAllEffectSegments().size() > 1, + service, TEST_TIMEOUT_MILLIS)); + + // The second vibration should have recorded that the vibrators were turned on. + verify(mBatteryStatsMock, times(2)).noteVibratorOn(anyInt(), anyLong()); } @Test @@ -1052,15 +1080,15 @@ public class VibratorManagerServiceTest { IVibrator.CAP_COMPOSE_EFFECTS); VibratorManagerService service = createSystemReadyService(); - vibrate(service, CombinedVibration.startSequential() - .addNext(1, VibrationEffect.createOneShot(100, 125)) - .combine(), NOTIFICATION_ATTRS); - assertTrue(waitUntil(s -> fakeVibrator.getAllEffectSegments().size() == 1, - service, TEST_TIMEOUT_MILLIS)); - vibrate(service, VibrationEffect.startComposition() .addPrimitive(VibrationEffect.Composition.PRIMITIVE_TICK, 0.5f) .compose(), HAPTIC_FEEDBACK_ATTRS); + assertTrue(waitUntil(s -> fakeVibrator.getAllEffectSegments().size() == 1, + service, TEST_TIMEOUT_MILLIS)); + + vibrate(service, CombinedVibration.startSequential() + .addNext(1, VibrationEffect.createOneShot(100, 125)) + .combine(), NOTIFICATION_ATTRS); assertTrue(waitUntil(s -> fakeVibrator.getAllEffectSegments().size() == 2, service, TEST_TIMEOUT_MILLIS)); @@ -1070,25 +1098,25 @@ public class VibratorManagerServiceTest { assertTrue(waitUntil(s -> fakeVibrator.getAllEffectSegments().size() == 3, service, TEST_TIMEOUT_MILLIS)); + // Ring vibrations have intensity OFF and are not played. vibrate(service, VibrationEffect.createOneShot(100, 125), RINGTONE_ATTRS); assertFalse(waitUntil(s -> fakeVibrator.getAllEffectSegments().size() > 3, - service, TEST_TIMEOUT_MILLIS)); + service, /* timeout= */ 50)); + // Only 3 effects played successfully. assertEquals(3, fakeVibrator.getAllEffectSegments().size()); + // Haptic feedback vibrations will be scaled with SCALE_LOW or none if default is low. + assertEquals(defaultTouchIntensity > Vibrator.VIBRATION_INTENSITY_LOW, + 0.5 > ((PrimitiveSegment) fakeVibrator.getAllEffectSegments().get(0)).getScale()); + // Notification vibrations will be scaled with SCALE_HIGH or none if default is high. assertEquals(defaultNotificationIntensity < Vibrator.VIBRATION_INTENSITY_HIGH, 0.6 < fakeVibrator.getAmplitudes().get(0)); - // Haptic feedback vibrations will be scaled with SCALE_LOW or none if default is low. - assertEquals(defaultTouchIntensity > Vibrator.VIBRATION_INTENSITY_LOW, - 0.5 > ((PrimitiveSegment) fakeVibrator.getAllEffectSegments().get(1)).getScale()); - // Alarm vibration will be scaled with SCALE_NONE. assertEquals(1f, ((PrimitiveSegment) fakeVibrator.getAllEffectSegments().get(2)).getScale(), 1e-5); - - // Ring vibrations have intensity OFF and are not played. } @Test diff --git a/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java b/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java index db3a51ca4791..2956c14155b9 100644 --- a/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java +++ b/services/tests/wmtests/src/com/android/server/wm/DualDisplayAreaGroupPolicyTest.java @@ -39,7 +39,6 @@ import static com.android.server.wm.SizeCompatTests.rotateDisplay; import static com.google.common.truth.Truth.assertThat; -import static org.junit.Assert.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; @@ -211,10 +210,8 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase { assertThat(activityConfigBounds.width()).isEqualTo(activityBounds.width()); assertThat(activityConfigBounds.height()).isEqualTo(activityBounds.height()); assertThat(activitySizeCompatBounds.height()).isEqualTo(newTaskBounds.height()); - final float defaultAspectRatio = mFirstActivity.mWmService.mLetterboxConfiguration - .getDefaultMinAspectRatioForUnresizableApps(); - assertEquals(activitySizeCompatBounds.width(), - newTaskBounds.height() / defaultAspectRatio, 0.5); + assertThat(activitySizeCompatBounds.width()).isEqualTo( + newTaskBounds.height() * newTaskBounds.height() / newTaskBounds.width()); } @Test @@ -234,9 +231,8 @@ public class DualDisplayAreaGroupPolicyTest extends WindowTestsBase { assertThat(mFirstActivity.inSizeCompatMode()).isFalse(); assertThat(taskBounds).isEqualTo(dagBounds); assertThat(activityBounds.width()).isEqualTo(dagBounds.width()); - final float defaultAspectRatio = mFirstActivity.mWmService.mLetterboxConfiguration - .getDefaultMinAspectRatioForUnresizableApps(); - assertEquals(activityBounds.height(), dagBounds.width() / defaultAspectRatio, 0.5); + assertThat(activityBounds.height()) + .isEqualTo(dagBounds.width() * dagBounds.width() / dagBounds.height()); } @Test diff --git a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java index 7f70882a70fc..324e244c46f5 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java +++ b/services/tests/wmtests/src/com/android/server/wm/SizeCompatTests.java @@ -1471,6 +1471,8 @@ public class SizeCompatTests extends WindowTestsBase { final float fixedOrientationLetterboxAspectRatio = 1.1f; mActivity.mWmService.mLetterboxConfiguration.setFixedOrientationLetterboxAspectRatio( fixedOrientationLetterboxAspectRatio); + mActivity.mWmService.mLetterboxConfiguration.setDefaultMinAspectRatioForUnresizableApps( + 1.5f); prepareUnresizable(mActivity, SCREEN_ORIENTATION_PORTRAIT); final Rect displayBounds = new Rect(mActivity.mDisplayContent.getBounds()); @@ -1496,7 +1498,9 @@ public class SizeCompatTests extends WindowTestsBase { @Test public void testSplitAspectRatioForUnresizablePortraitApps() { // Set up a display in landscape and ignoring orientation request. - setUpDisplaySizeWithApp(1600, 1400); + int screenWidth = 1600; + int screenHeight = 1400; + setUpDisplaySizeWithApp(screenWidth, screenHeight); mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */); mActivity.mWmService.mLetterboxConfiguration .setIsSplitScreenAspectRatioForUnresizableAppsEnabled(true); @@ -1520,6 +1524,7 @@ public class SizeCompatTests extends WindowTestsBase { new TestSplitOrganizer(mAtm, mActivity.getDisplayContent()); // Move activity to split screen which takes half of the screen. mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test"); + organizer.mPrimary.setBounds(0, 0, getExpectedSplitSize(screenWidth), screenHeight); assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode()); assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode()); // Checking that there is no size compat mode. @@ -1528,8 +1533,10 @@ public class SizeCompatTests extends WindowTestsBase { @Test public void testSplitAspectRatioForUnresizableLandscapeApps() { - // Set up a display in landscape and ignoring orientation request. - setUpDisplaySizeWithApp(1400, 1600); + // Set up a display in portrait and ignoring orientation request. + int screenWidth = 1400; + int screenHeight = 1600; + setUpDisplaySizeWithApp(screenWidth, screenHeight); mActivity.mDisplayContent.setIgnoreOrientationRequest(true /* ignoreOrientationRequest */); mActivity.mWmService.mLetterboxConfiguration .setIsSplitScreenAspectRatioForUnresizableAppsEnabled(true); @@ -1553,6 +1560,7 @@ public class SizeCompatTests extends WindowTestsBase { new TestSplitOrganizer(mAtm, mActivity.getDisplayContent()); // Move activity to split screen which takes half of the screen. mTask.reparent(organizer.mPrimary, POSITION_TOP, /* moveParents= */ false , "test"); + organizer.mPrimary.setBounds(0, 0, screenWidth, getExpectedSplitSize(screenHeight)); assertEquals(WINDOWING_MODE_MULTI_WINDOW, mTask.getWindowingMode()); assertEquals(WINDOWING_MODE_MULTI_WINDOW, mActivity.getWindowingMode()); // Checking that there is no size compat mode. @@ -2071,12 +2079,7 @@ public class SizeCompatTests extends WindowTestsBase { // Activity bounds fill split screen. final Rect primarySplitBounds = new Rect(organizer.mPrimary.getBounds()); final Rect letterboxedBounds = new Rect(mActivity.getBounds()); - // Activity is letterboxed for aspect ratio. - assertEquals(primarySplitBounds.height(), letterboxedBounds.height()); - final float defaultAspectRatio = mActivity.mWmService.mLetterboxConfiguration - .getDefaultMinAspectRatioForUnresizableApps(); - assertEquals(primarySplitBounds.height() / defaultAspectRatio, - letterboxedBounds.width(), 0.5); + assertEquals(primarySplitBounds, letterboxedBounds); } @Test @@ -2618,6 +2621,16 @@ public class SizeCompatTests extends WindowTestsBase { assertEquals(newDensity, mActivity.getConfiguration().densityDpi); } + private int getExpectedSplitSize(int dimensionToSplit) { + int dividerWindowWidth = + mActivity.mWmService.mContext.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.docked_stack_divider_thickness); + int dividerInsets = + mActivity.mWmService.mContext.getResources().getDimensionPixelSize( + com.android.internal.R.dimen.docked_stack_divider_insets); + return (dimensionToSplit - (dividerWindowWidth - dividerInsets * 2)) / 2; + } + private void assertHorizontalPositionForDifferentDisplayConfigsForLandscapeActivity( float letterboxHorizontalPositionMultiplier) { // Set up a display in landscape and ignoring orientation request. diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java index 53c2a5b8967d..486486869d05 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java +++ b/services/tests/wmtests/src/com/android/server/wm/SystemServiceTestsBase.java @@ -47,10 +47,6 @@ class SystemServiceTestsBase { mLockRule.waitForLocked(mSystemServicesTestRule::waitUntilWindowAnimatorIdle); } - void cleanupWindowManagerHandlers() { - mLockRule.waitForLocked(mSystemServicesTestRule::cleanupWindowManagerHandlers); - } - boolean waitHandlerIdle(Handler handler) { return waitHandlerIdle(handler, 0 /* timeout */); } diff --git a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java index 859eba600af5..ab7e8eab28c3 100644 --- a/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java +++ b/services/tests/wmtests/src/com/android/server/wm/SystemServicesTestRule.java @@ -370,8 +370,6 @@ public class SystemServicesTestRule implements TestRule { // This makes sure the posted messages without delay are processed, e.g. // DisplayPolicy#release, WindowManagerService#setAnimationScale. waitUntilWindowManagerHandlersIdle(); - // Clear all posted messages with delay, so they don't be executed at unexpected times. - cleanupWindowManagerHandlers(); // Needs to explicitly dispose current static threads because there could be messages // scheduled at a later time, and all mocks are invalid when it's executed. DisplayThread.dispose(); @@ -460,18 +458,6 @@ public class SystemServicesTestRule implements TestRule { return proc; } - void cleanupWindowManagerHandlers() { - final WindowManagerService wm = getWindowManagerService(); - if (wm == null) { - return; - } - wm.mH.removeCallbacksAndMessages(null); - wm.mAnimationHandler.removeCallbacksAndMessages(null); - // This is a different handler object than the wm.mAnimationHandler above. - AnimationThread.getHandler().removeCallbacksAndMessages(null); - SurfaceAnimationThread.getHandler().removeCallbacksAndMessages(null); - } - void waitUntilWindowManagerHandlersIdle() { final WindowManagerService wm = getWindowManagerService(); if (wm == null) { diff --git a/telephony/java/android/telephony/AccessNetworkUtils.java b/telephony/java/android/telephony/AccessNetworkUtils.java index b0f207cd9ed3..b5d97abdd3eb 100644 --- a/telephony/java/android/telephony/AccessNetworkUtils.java +++ b/telephony/java/android/telephony/AccessNetworkUtils.java @@ -4,8 +4,8 @@ import static android.telephony.ServiceState.DUPLEX_MODE_FDD; import static android.telephony.ServiceState.DUPLEX_MODE_TDD; import static android.telephony.ServiceState.DUPLEX_MODE_UNKNOWN; -import android.telephony.AccessNetworkConstants.EutranBand; import android.telephony.AccessNetworkConstants.EutranBandArfcnFrequency; +import android.telephony.AccessNetworkConstants.EutranBand; import android.telephony.AccessNetworkConstants.GeranBand; import android.telephony.AccessNetworkConstants.GeranBandArfcnFrequency; import android.telephony.AccessNetworkConstants.NgranArfcnFrequency; @@ -13,6 +13,7 @@ import android.telephony.AccessNetworkConstants.NgranBands; import android.telephony.AccessNetworkConstants.UtranBand; import android.telephony.AccessNetworkConstants.UtranBandArfcnFrequency; import android.telephony.ServiceState.DuplexMode; +import android.util.Log; import java.util.Arrays; import java.util.HashSet; @@ -231,110 +232,6 @@ public class AccessNetworkUtils { } /** - * Gets the NR Operating band for a given downlink NRARFCN. - * - * <p>See 3GPP TS 38.104 Table 5.2-1 NR operating bands in FR1 and - * Table 5.2-2 NR operating bands in FR2 - * - * @param nrarfcn The downlink NRARFCN - * @return Operating band number, or {@link #INVALID_BAND} if no corresponding band exists - */ - public static int getOperatingBandForNrarfcn(int nrarfcn) { - if (nrarfcn >= 2110 && nrarfcn <= 2170) { - return NgranBands.BAND_1; - } else if (nrarfcn >= 1930 && nrarfcn <= 1990) { - return NgranBands.BAND_2; - } else if (nrarfcn >= 1805 && nrarfcn <= 1880) { - return NgranBands.BAND_3; - } else if (nrarfcn >= 869 && nrarfcn <= 894) { - return NgranBands.BAND_5; - } else if (nrarfcn >= 2620 && nrarfcn <= 2690) { - return NgranBands.BAND_7; - } else if (nrarfcn >= 925 && nrarfcn <= 960) { - return NgranBands.BAND_8; - } else if (nrarfcn >= 729 && nrarfcn <= 746) { - return NgranBands.BAND_12; - } else if (nrarfcn >= 758 && nrarfcn <= 768) { - return NgranBands.BAND_14; - } else if (nrarfcn >= 860 && nrarfcn <= 875) { - return NgranBands.BAND_18; - } else if (nrarfcn >= 791 && nrarfcn <= 821) { - return NgranBands.BAND_20; - } else if (nrarfcn >= 1930 && nrarfcn <= 1995) { - return NgranBands.BAND_25; - } else if (nrarfcn >= 859 && nrarfcn <= 894) { - return NgranBands.BAND_26; - } else if (nrarfcn >= 758 && nrarfcn <= 803) { - return NgranBands.BAND_28; - } else if (nrarfcn >= 717 && nrarfcn <= 728) { - return NgranBands.BAND_29; - } else if (nrarfcn >= 2350 && nrarfcn <= 2360) { - return NgranBands.BAND_30; - } else if (nrarfcn >= 2010 && nrarfcn <= 2025) { - return NgranBands.BAND_34; - } else if (nrarfcn >= 2570 && nrarfcn <= 2620) { - return NgranBands.BAND_38; - } else if (nrarfcn >= 1880 && nrarfcn <= 1920) { - return NgranBands.BAND_39; - } else if (nrarfcn >= 2300 && nrarfcn <= 2400) { - return NgranBands.BAND_40; - } else if (nrarfcn >= 2496 && nrarfcn <= 2690) { - return NgranBands.BAND_41; - } else if (nrarfcn >= 5150 && nrarfcn <= 5925) { - return NgranBands.BAND_46; - } else if (nrarfcn >= 3550 && nrarfcn <= 3700) { - return NgranBands.BAND_48; - } else if (nrarfcn >= 1432 && nrarfcn <= 1517) { - return NgranBands.BAND_50; - } else if (nrarfcn >= 1427 && nrarfcn <= 1432) { - return NgranBands.BAND_51; - } else if (nrarfcn >= 2483 && nrarfcn <= 2495) { - return NgranBands.BAND_53; - } else if (nrarfcn >= 2110 && nrarfcn <= 2200) { - return NgranBands.BAND_65; // BAND_66 has the same channels - } else if (nrarfcn >= 1995 && nrarfcn <= 2020) { - return NgranBands.BAND_70; - } else if (nrarfcn >= 617 && nrarfcn <= 652) { - return NgranBands.BAND_71; - } else if (nrarfcn >= 1475 && nrarfcn <= 1518) { - return NgranBands.BAND_74; - } else if (nrarfcn >= 1432 && nrarfcn <= 1517) { - return NgranBands.BAND_75; - } else if (nrarfcn >= 1427 && nrarfcn <= 1432) { - return NgranBands.BAND_76; - } else if (nrarfcn >= 3300 && nrarfcn <= 4200) { - return NgranBands.BAND_77; - } else if (nrarfcn >= 3300 && nrarfcn <= 3800) { - return NgranBands.BAND_78; - } else if (nrarfcn >= 4400 && nrarfcn <= 5000) { - return NgranBands.BAND_79; - } else if (nrarfcn >= 2496 && nrarfcn <= 2690) { - return NgranBands.BAND_90; - } else if (nrarfcn >= 1427 && nrarfcn <= 1432) { - return NgranBands.BAND_91; - } else if (nrarfcn >= 1427 && nrarfcn <= 1432) { - return NgranBands.BAND_92; - } else if (nrarfcn >= 1432 && nrarfcn <= 1517) { - return NgranBands.BAND_93; - } else if (nrarfcn >= 1427 && nrarfcn <= 1432) { - return NgranBands.BAND_94; - } else if (nrarfcn >= 1432 && nrarfcn <= 1517) { - return NgranBands.BAND_94; - } else if (nrarfcn >= 5925 && nrarfcn <= 7125) { - return NgranBands.BAND_96; - } else if (nrarfcn >= 26500 && nrarfcn <= 29500) { - return NgranBands.BAND_257; - } else if (nrarfcn >= 24250 && nrarfcn <= 27500) { - return NgranBands.BAND_258; - } else if (nrarfcn >= 37000 && nrarfcn <= 40000) { - return NgranBands.BAND_260; - } else if (nrarfcn >= 27500 && nrarfcn <= 28350) { - return NgranBands.BAND_261; - } - return INVALID_BAND; - } - - /** * Gets the GERAN Operating band for a given ARFCN. * * <p>See 3GPP TS 45.005 clause 2 for calculation. |