Merge "Add per-display Configuration change reporting"
diff --git a/api/current.txt b/api/current.txt
index c86506b..00cd6cb 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -50819,7 +50819,7 @@
method public final int getScrollY();
method @android.view.ViewDebug.ExportedProperty(category="drawing") @ColorInt public int getSolidColor();
method @LayoutRes public int getSourceLayoutResId();
- method @android.view.ViewDebug.ExportedProperty(category="accessibility") @Nullable public CharSequence getStateDescription();
+ method @android.view.ViewDebug.ExportedProperty(category="accessibility") @Nullable public final CharSequence getStateDescription();
method public android.animation.StateListAnimator getStateListAnimator();
method protected int getSuggestedMinimumHeight();
method protected int getSuggestedMinimumWidth();
diff --git a/api/system-current.txt b/api/system-current.txt
index 07e46a0..c4ae9a3 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -4853,6 +4853,10 @@
field @Deprecated public static final int WPA2_PSK = 4; // 0x4
}
+ public class WifiFrameworkInitializer {
+ method public static void registerServiceWrappers();
+ }
+
public class WifiInfo implements android.os.Parcelable {
method @Nullable public String getAppPackageName();
method public double getRxSuccessRate();
@@ -5024,6 +5028,7 @@
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public java.util.List<java.lang.Integer> getAvailableChannels(int);
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public boolean getScanResults();
method @NonNull @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public java.util.List<android.net.wifi.ScanResult> getSingleScanResults();
+ method @RequiresPermission(android.Manifest.permission.NETWORK_STACK) public void setScanningEnabled(boolean);
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startBackgroundScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener, android.os.WorkSource);
method @RequiresPermission(android.Manifest.permission.LOCATION_HARDWARE) public void startScan(android.net.wifi.WifiScanner.ScanSettings, android.net.wifi.WifiScanner.ScanListener);
diff --git a/api/test-current.txt b/api/test-current.txt
index 693b190..c342419 100644
--- a/api/test-current.txt
+++ b/api/test-current.txt
@@ -2465,6 +2465,7 @@
field public static final String DYNAMIC_POWER_SAVINGS_DISABLE_THRESHOLD = "dynamic_power_savings_disable_threshold";
field public static final String DYNAMIC_POWER_SAVINGS_ENABLED = "dynamic_power_savings_enabled";
field public static final String HIDDEN_API_BLACKLIST_EXEMPTIONS = "hidden_api_blacklist_exemptions";
+ field public static final String HIDE_ERROR_DIALOGS = "hide_error_dialogs";
field public static final String LOCATION_GLOBAL_KILL_SWITCH = "location_global_kill_switch";
field public static final String LOCATION_IGNORE_SETTINGS_PACKAGE_WHITELIST = "location_ignore_settings_package_whitelist";
field public static final String LOW_POWER_MODE = "low_power";
diff --git a/cmds/statsd/src/atoms.proto b/cmds/statsd/src/atoms.proto
index d78de75..49cc3c4 100644
--- a/cmds/statsd/src/atoms.proto
+++ b/cmds/statsd/src/atoms.proto
@@ -340,6 +340,8 @@
PerfettoUploaded perfetto_uploaded =
229 [(log_from_module) = "perfetto"];
VmsClientConnectionStateChanged vms_client_connection_state_changed = 230;
+ GpsLocationStatusReported gps_location_status_reported = 231;
+ GpsTimeToFirstFixReported gps_time_to_first_fix_reported = 232;
}
// Pulled events will start at field 10000.
@@ -734,6 +736,27 @@
optional android.server.location.GpsSignalQualityEnum level = 1;
}
+/**
+ * Gps location status report
+ *
+ * Logged from:
+ * /frameworks/base/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
+ */
+message GpsLocationStatusReported {
+ // Boolean stating if location was acquired
+ optional bool location_success = 1;
+}
+
+/**
+ * Gps log time to first fix report
+ *
+ * Logged from:
+ * /frameworks/base/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
+ */
+message GpsTimeToFirstFixReported {
+ // int32 reporting the time to first fix in milliseconds
+ optional int32 time_to_first_fix_millis = 1;
+}
/**
* Logs when a sync manager sync state changes.
diff --git a/cmds/svc/src/com/android/commands/svc/Svc.java b/cmds/svc/src/com/android/commands/svc/Svc.java
index 68fb8e6..e602e2a 100644
--- a/cmds/svc/src/com/android/commands/svc/Svc.java
+++ b/cmds/svc/src/com/android/commands/svc/Svc.java
@@ -94,7 +94,7 @@
COMMAND_HELP,
new PowerCommand(),
new DataCommand(),
- new WifiCommand(),
+ // `svc wifi` has been migrated to WifiShellCommand
new UsbCommand(),
new NfcCommand(),
new BluetoothCommand(),
diff --git a/cmds/svc/src/com/android/commands/svc/WifiCommand.java b/cmds/svc/src/com/android/commands/svc/WifiCommand.java
deleted file mode 100644
index e31cb53..0000000
--- a/cmds/svc/src/com/android/commands/svc/WifiCommand.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.commands.svc;
-
-import android.os.ServiceManager;
-import android.os.RemoteException;
-import android.net.wifi.IWifiManager;
-import android.content.Context;
-
-public class WifiCommand extends Svc.Command {
- public WifiCommand() {
- super("wifi");
- }
-
- public String shortHelp() {
- return "Control the Wi-Fi manager";
- }
-
- public String longHelp() {
- return shortHelp() + "\n"
- + "\n"
- + "usage: svc wifi [enable|disable]\n"
- + " Turn Wi-Fi on or off.\n\n";
- }
-
- public void run(String[] args) {
- boolean validCommand = false;
- if (args.length >= 2) {
- boolean flag = false;
- if ("enable".equals(args[1])) {
- flag = true;
- validCommand = true;
- } else if ("disable".equals(args[1])) {
- flag = false;
- validCommand = true;
- }
- if (validCommand) {
- IWifiManager wifiMgr
- = IWifiManager.Stub.asInterface(ServiceManager.getService(Context.WIFI_SERVICE));
- if (wifiMgr == null) {
- System.err.println("Wi-Fi service is not ready");
- return;
- }
- try {
- wifiMgr.setWifiEnabled("com.android.shell", flag);
- }
- catch (RemoteException e) {
- System.err.println("Wi-Fi operation failed: " + e);
- }
- return;
- }
- }
- System.err.println(longHelp());
- }
-}
diff --git a/cmds/svc/svc b/cmds/svc/svc
index c122e98..60c95c7 100755
--- a/cmds/svc/svc
+++ b/cmds/svc/svc
@@ -1,3 +1,24 @@
#!/system/bin/sh
+
+# `svc wifi` has been migrated to WifiShellCommand,
+# simply perform translation to `cmd wifi set-wifi-enabled` here.
+if [ "x$1" == "xwifi" ]; then
+ # `cmd wifi` by convention uses enabled/disabled
+ # instead of enable/disable
+ if [ "x$2" == "xenable" ]; then
+ exec cmd wifi set-wifi-enabled enabled
+ elif [ "x$2" == "xdisable" ]; then
+ exec cmd wifi set-wifi-enabled disabled
+ else
+ echo "Control the Wi-Fi manager"
+ echo ""
+ echo "usage: svc wifi [enable|disable]"
+ echo " Turn Wi-Fi on or off."
+ echo ""
+ fi
+ exit 1
+fi
+
export CLASSPATH=/system/framework/svc.jar
exec app_process /system/bin com.android.commands.svc.Svc "$@"
+
diff --git a/core/java/android/app/AppOpsManager.java b/core/java/android/app/AppOpsManager.java
index afb7871..5032f77 100644
--- a/core/java/android/app/AppOpsManager.java
+++ b/core/java/android/app/AppOpsManager.java
@@ -1213,7 +1213,6 @@
OP_START_FOREGROUND,
OP_SMS_FINANCIAL_TRANSACTIONS,
OP_MANAGE_IPSEC_TUNNELS,
- OP_GET_USAGE_STATS,
OP_INSTANT_APP_START_FOREGROUND
};
diff --git a/core/java/android/app/SystemServiceRegistry.java b/core/java/android/app/SystemServiceRegistry.java
index 5effa1b..0bfd2c6 100644
--- a/core/java/android/app/SystemServiceRegistry.java
+++ b/core/java/android/app/SystemServiceRegistry.java
@@ -116,16 +116,7 @@
import android.net.lowpan.LowpanManager;
import android.net.nsd.INsdManager;
import android.net.nsd.NsdManager;
-import android.net.wifi.IWifiScanner;
-import android.net.wifi.RttManager;
-import android.net.wifi.WifiManager;
-import android.net.wifi.WifiScanner;
-import android.net.wifi.aware.IWifiAwareManager;
-import android.net.wifi.aware.WifiAwareManager;
-import android.net.wifi.p2p.IWifiP2pManager;
-import android.net.wifi.p2p.WifiP2pManager;
-import android.net.wifi.rtt.IWifiRttManager;
-import android.net.wifi.rtt.WifiRttManager;
+import android.net.wifi.WifiFrameworkInitializer;
import android.nfc.NfcManager;
import android.os.BatteryManager;
import android.os.BatteryStats;
@@ -691,66 +682,6 @@
ConnectivityThread.getInstanceLooper());
}});
- registerService(Context.WIFI_SERVICE, WifiManager.class,
- new CachedServiceFetcher<WifiManager>() {
- @Override
- public WifiManager createService(ContextImpl ctx) {
- return new WifiManager(ctx.getOuterContext(),
- ConnectivityThread.getInstanceLooper());
- }});
-
- registerService(Context.WIFI_P2P_SERVICE, WifiP2pManager.class,
- new StaticServiceFetcher<WifiP2pManager>() {
- @Override
- public WifiP2pManager createService() throws ServiceNotFoundException {
- IBinder b = ServiceManager.getServiceOrThrow(Context.WIFI_P2P_SERVICE);
- IWifiP2pManager service = IWifiP2pManager.Stub.asInterface(b);
- return new WifiP2pManager(service);
- }});
-
- registerService(Context.WIFI_AWARE_SERVICE, WifiAwareManager.class,
- new CachedServiceFetcher<WifiAwareManager>() {
- @Override
- public WifiAwareManager createService(ContextImpl ctx) throws ServiceNotFoundException {
- IBinder b = ServiceManager.getServiceOrThrow(Context.WIFI_AWARE_SERVICE);
- IWifiAwareManager service = IWifiAwareManager.Stub.asInterface(b);
- if (service == null) {
- return null;
- }
- return new WifiAwareManager(ctx.getOuterContext(), service);
- }});
-
- registerService(Context.WIFI_SCANNING_SERVICE, WifiScanner.class,
- new CachedServiceFetcher<WifiScanner>() {
- @Override
- public WifiScanner createService(ContextImpl ctx) throws ServiceNotFoundException {
- IBinder b = ServiceManager.getServiceOrThrow(Context.WIFI_SCANNING_SERVICE);
- IWifiScanner service = IWifiScanner.Stub.asInterface(b);
- return new WifiScanner(ctx.getOuterContext(), service,
- ConnectivityThread.getInstanceLooper());
- }});
-
- registerService(Context.WIFI_RTT_SERVICE, RttManager.class,
- new CachedServiceFetcher<RttManager>() {
- @Override
- public RttManager createService(ContextImpl ctx) throws ServiceNotFoundException {
- IBinder b = ServiceManager.getServiceOrThrow(Context.WIFI_RTT_RANGING_SERVICE);
- IWifiRttManager service = IWifiRttManager.Stub.asInterface(b);
- return new RttManager(ctx.getOuterContext(),
- new WifiRttManager(ctx.getOuterContext(), service));
- }});
-
- registerService(Context.WIFI_RTT_RANGING_SERVICE, WifiRttManager.class,
- new CachedServiceFetcher<WifiRttManager>() {
- @Override
- public WifiRttManager createService(ContextImpl ctx)
- throws ServiceNotFoundException {
- IBinder b = ServiceManager.getServiceOrThrow(
- Context.WIFI_RTT_RANGING_SERVICE);
- IWifiRttManager service = IWifiRttManager.Stub.asInterface(b);
- return new WifiRttManager(ctx.getOuterContext(), service);
- }});
-
registerService(Context.ETHERNET_SERVICE, EthernetManager.class,
new CachedServiceFetcher<EthernetManager>() {
@Override
@@ -1265,6 +1196,7 @@
BlobStoreManagerFrameworkInitializer.initialize();
TelephonyFrameworkInitializer.registerServiceWrappers();
AppSearchManagerFrameworkInitializer.initialize();
+ WifiFrameworkInitializer.registerServiceWrappers();
} finally {
// If any of the above code throws, we're in a pretty bad shape and the process
// will likely crash, but we'll reset it just in case there's an exception handler...
diff --git a/core/java/android/content/res/AssetManager.java b/core/java/android/content/res/AssetManager.java
index 2d9ca67..168eae6 100644
--- a/core/java/android/content/res/AssetManager.java
+++ b/core/java/android/content/res/AssetManager.java
@@ -206,7 +206,7 @@
@VisibleForTesting
public static void createSystemAssetsInZygoteLocked(boolean reinitialize,
String frameworkPath) {
- if (sSystem != null || reinitialize) {
+ if (sSystem != null && !reinitialize) {
return;
}
@@ -225,7 +225,9 @@
sSystemApkAssetsSet = new ArraySet<>(apkAssets);
sSystemApkAssets = apkAssets.toArray(new ApkAssets[apkAssets.size()]);
- sSystem = new AssetManager(true /*sentinel*/);
+ if (sSystem == null) {
+ sSystem = new AssetManager(true /*sentinel*/);
+ }
sSystem.setApkAssets(sSystemApkAssets, false /*invalidateCaches*/);
} catch (IOException e) {
throw new IllegalStateException("Failed to create system AssetManager", e);
diff --git a/core/java/android/provider/Settings.java b/core/java/android/provider/Settings.java
index cce0d4f..7a63b59 100644
--- a/core/java/android/provider/Settings.java
+++ b/core/java/android/provider/Settings.java
@@ -11919,6 +11919,7 @@
* as if they had been accepted by the user.
* @hide
*/
+ @TestApi
public static final String HIDE_ERROR_DIALOGS = "hide_error_dialogs";
/**
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index db76b71..9d4f3878 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -8732,7 +8732,7 @@
structure.setContextClickable(true);
}
structure.setClassName(getAccessibilityClassName().toString());
- structure.setContentDescription(mContentDescription);
+ structure.setContentDescription(getContentDescription());
}
/**
@@ -9939,8 +9939,8 @@
info.setImportantForAccessibility(isImportantForAccessibility());
info.setPackageName(mContext.getPackageName());
info.setClassName(getAccessibilityClassName());
- info.setStateDescription(mStateDescription);
- info.setContentDescription(mContentDescription);
+ info.setStateDescription(getStateDescription());
+ info.setContentDescription(getContentDescription());
info.setEnabled(isEnabled());
info.setClickable(isClickable());
@@ -10323,7 +10323,7 @@
* @see #setStateDescription(CharSequence)
*/
@ViewDebug.ExportedProperty(category = "accessibility")
- public @Nullable CharSequence getStateDescription() {
+ public final @Nullable CharSequence getStateDescription() {
return mStateDescription;
}
@@ -13717,7 +13717,7 @@
*/
@UnsupportedAppUsage
public CharSequence getIterableTextForAccessibility() {
- return mContentDescription;
+ return getContentDescription();
}
/**
@@ -29498,10 +29498,9 @@
stream.addProperty("text:textAlignment", getTextAlignment());
// accessibility
+ CharSequence contentDescription = getContentDescription();
stream.addProperty("accessibility:contentDescription",
- mContentDescription == null ? "" : mContentDescription.toString());
- stream.addProperty("accessibility:stateDescription",
- mStateDescription == null ? "" : mStateDescription.toString());
+ contentDescription == null ? "" : contentDescription.toString());
stream.addProperty("accessibility:labelFor", getLabelFor());
stream.addProperty("accessibility:importantForAccessibility", getImportantForAccessibility());
}
diff --git a/core/java/com/android/internal/app/TEST_MAPPING b/core/java/com/android/internal/app/TEST_MAPPING
new file mode 100644
index 0000000..373a5d9
--- /dev/null
+++ b/core/java/com/android/internal/app/TEST_MAPPING
@@ -0,0 +1,20 @@
+{
+ "postsubmit": [
+ {
+ "name": "FrameworksCoreTests",
+ "options": [
+ {
+ "include-filter": "com.android.internal.app."
+ },
+
+ // Many tests failing - do not enable for continuous execution
+ {
+ "exclude-filter": "com.android.internal.app.IntentForwarderActivityTest"
+ },
+ {
+ "exclude-filter": "com.android.internal.app.WindowDecorActionBarTest"
+ }
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/core/java/com/android/internal/util/function/pooled/PooledLambda.java b/core/java/com/android/internal/util/function/pooled/PooledLambda.java
index d32ff06..a60cc0f 100755
--- a/core/java/com/android/internal/util/function/pooled/PooledLambda.java
+++ b/core/java/com/android/internal/util/function/pooled/PooledLambda.java
@@ -383,7 +383,7 @@
QuadPredicate<? super A, ? super B, ? super C, ? super D> function,
ArgumentPlaceholder<A> arg1, B arg2, C arg3, D arg4) {
return acquire(PooledLambdaImpl.sPool,
- function, 3, 1, ReturnType.BOOLEAN, arg1, arg2, arg3, arg4, null, null, null, null,
+ function, 4, 1, ReturnType.BOOLEAN, arg1, arg2, arg3, arg4, null, null, null, null,
null, null, null);
}
@@ -404,7 +404,7 @@
QuintPredicate<? super A, ? super B, ? super C, ? super D, ? super E> function,
ArgumentPlaceholder<A> arg1, B arg2, C arg3, D arg4, E arg5) {
return acquire(PooledLambdaImpl.sPool,
- function, 3, 1, ReturnType.BOOLEAN, arg1, arg2, arg3, arg4, arg5, null, null, null,
+ function, 5, 1, ReturnType.BOOLEAN, arg1, arg2, arg3, arg4, arg5, null, null, null,
null, null, null);
}
diff --git a/core/jni/android_os_SystemProperties.cpp b/core/jni/android_os_SystemProperties.cpp
index 7f8bec6..7f3b32e 100644
--- a/core/jni/android_os_SystemProperties.cpp
+++ b/core/jni/android_os_SystemProperties.cpp
@@ -123,7 +123,7 @@
jboolean SystemProperties_get_boolean(JNIEnv *env, jclass, jstring keyJ,
jboolean defJ)
{
- ParseBoolResult parseResult;
+ ParseBoolResult parseResult = ParseBoolResult::kError;
ReadProperty(env, keyJ, [&](const char* value) {
parseResult = android::base::ParseBool(value);
});
@@ -168,7 +168,7 @@
jboolean SystemProperties_get_booleanH(CRITICAL_JNI_PARAMS_COMMA jlong propJ, jboolean defJ)
{
- ParseBoolResult parseResult;
+ ParseBoolResult parseResult = ParseBoolResult::kError;
auto prop = reinterpret_cast<const prop_info*>(propJ);
ReadProperty(prop, [&](const char* value) {
parseResult = android::base::ParseBool(value);
diff --git a/core/jni/android_view_ThreadedRenderer.cpp b/core/jni/android_view_ThreadedRenderer.cpp
index 7350396..170e467 100644
--- a/core/jni/android_view_ThreadedRenderer.cpp
+++ b/core/jni/android_view_ThreadedRenderer.cpp
@@ -180,10 +180,13 @@
if (jsurface) {
surface = android_view_Surface_getSurface(env, jsurface);
}
+ bool enableTimeout = true;
if (discardBuffer) {
+ // Currently only Surface#lockHardwareCanvas takes this path
+ enableTimeout = false;
proxy->setSwapBehavior(SwapBehavior::kSwap_discardBuffer);
}
- proxy->setSurface(surface);
+ proxy->setSurface(surface, enableTimeout);
}
static jboolean android_view_ThreadedRenderer_pause(JNIEnv* env, jobject clazz,
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index c63d2aa..62001aa 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -5045,10 +5045,6 @@
android:permission="android.permission.BIND_JOB_SERVICE" >
</service>
- <service android:name="com.android.server.usage.UsageStatsIdleService"
- android:permission="android.permission.BIND_JOB_SERVICE" >
- </service>
-
<service android:name="com.android.server.net.watchlist.ReportWatchlistJobService"
android:permission="android.permission.BIND_JOB_SERVICE" >
</service>
diff --git a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
index a401e21..344c286 100644
--- a/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
+++ b/core/tests/coretests/src/com/android/internal/app/ResolverActivityTest.java
@@ -50,6 +50,7 @@
import com.android.internal.widget.ResolverDrawerLayout;
import org.junit.Before;
+import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -103,6 +104,7 @@
assertThat(chosen[0], is(toChoose));
}
+ @Ignore // Failing - b/144929805
@Test
public void setMaxHeight() throws Exception {
Intent sendIntent = createSendImageIntent();
@@ -146,6 +148,7 @@
resolverList.getHeight() == initialResolverHeight);
}
+ @Ignore // Failing - b/144929805
@Test
public void setShowAtTopToTrue() throws Exception {
Intent sendIntent = createSendImageIntent();
diff --git a/libs/hwui/renderthread/CanvasContext.cpp b/libs/hwui/renderthread/CanvasContext.cpp
index f086768..8490221 100644
--- a/libs/hwui/renderthread/CanvasContext.cpp
+++ b/libs/hwui/renderthread/CanvasContext.cpp
@@ -140,13 +140,15 @@
mAnimationContext->destroy();
}
-void CanvasContext::setSurface(sp<Surface>&& surface) {
+void CanvasContext::setSurface(sp<Surface>&& surface, bool enableTimeout) {
ATRACE_CALL();
if (surface) {
mNativeSurface = new ReliableSurface{std::move(surface)};
- // TODO: Fix error handling & re-shorten timeout
- ANativeWindow_setDequeueTimeout(mNativeSurface.get(), 4000_ms);
+ if (enableTimeout) {
+ // TODO: Fix error handling & re-shorten timeout
+ ANativeWindow_setDequeueTimeout(mNativeSurface.get(), 4000_ms);
+ }
} else {
mNativeSurface = nullptr;
}
diff --git a/libs/hwui/renderthread/CanvasContext.h b/libs/hwui/renderthread/CanvasContext.h
index b192d46..4490f80 100644
--- a/libs/hwui/renderthread/CanvasContext.h
+++ b/libs/hwui/renderthread/CanvasContext.h
@@ -111,7 +111,7 @@
// Won't take effect until next EGLSurface creation
void setSwapBehavior(SwapBehavior swapBehavior);
- void setSurface(sp<Surface>&& surface);
+ void setSurface(sp<Surface>&& surface, bool enableTimeout = true);
bool pauseSurface();
void setStopped(bool stopped);
bool hasSurface() const { return mNativeSurface.get(); }
diff --git a/libs/hwui/renderthread/RenderProxy.cpp b/libs/hwui/renderthread/RenderProxy.cpp
index 4f7ad7b..f9e401a 100644
--- a/libs/hwui/renderthread/RenderProxy.cpp
+++ b/libs/hwui/renderthread/RenderProxy.cpp
@@ -78,9 +78,10 @@
mRenderThread.queue().runSync([this, name]() { mContext->setName(std::string(name)); });
}
-void RenderProxy::setSurface(const sp<Surface>& surface) {
- mRenderThread.queue().post(
- [this, surf = surface]() mutable { mContext->setSurface(std::move(surf)); });
+void RenderProxy::setSurface(const sp<Surface>& surface, bool enableTimeout) {
+ mRenderThread.queue().post([this, surf = surface, enableTimeout]() mutable {
+ mContext->setSurface(std::move(surf), enableTimeout);
+ });
}
void RenderProxy::allocateBuffers() {
diff --git a/libs/hwui/renderthread/RenderProxy.h b/libs/hwui/renderthread/RenderProxy.h
index e6fe1d4..4683e1d 100644
--- a/libs/hwui/renderthread/RenderProxy.h
+++ b/libs/hwui/renderthread/RenderProxy.h
@@ -69,7 +69,7 @@
ANDROID_API bool loadSystemProperties();
ANDROID_API void setName(const char* name);
- ANDROID_API void setSurface(const sp<Surface>& surface);
+ ANDROID_API void setSurface(const sp<Surface>& surface, bool enableTimeout = true);
ANDROID_API void allocateBuffers();
ANDROID_API bool pause();
ANDROID_API void setStopped(bool stopped);
diff --git a/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java b/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
index e0bff74..c20dc61 100644
--- a/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
+++ b/location/java/com/android/internal/location/gnssmetrics/GnssMetrics.java
@@ -114,6 +114,7 @@
* Logs the status of a location report received from the HAL
*/
public void logReceivedLocationStatus(boolean isSuccessful) {
+ StatsLog.write(StatsLog.GPS_LOCATION_STATUS_REPORTED, isSuccessful);
if (!isSuccessful) {
mLocationFailureStatistics.addItem(1.0);
return;
@@ -130,6 +131,7 @@
DEFAULT_TIME_BETWEEN_FIXES_MILLISECS, desiredTimeBetweenFixesMilliSeconds)) - 1;
if (numReportMissed > 0) {
for (int i = 0; i < numReportMissed; i++) {
+ StatsLog.write(StatsLog.GPS_LOCATION_STATUS_REPORTED, false);
mLocationFailureStatistics.addItem(1.0);
}
}
@@ -140,6 +142,7 @@
*/
public void logTimeToFirstFixMilliSecs(int timeToFirstFixMilliSeconds) {
mTimeToFirstFixSecStatistics.addItem((double) (timeToFirstFixMilliSeconds / 1000));
+ StatsLog.write(StatsLog.GPS_TIME_TO_FIRST_FIX_REPORTED, timeToFirstFixMilliSeconds);
}
/**
diff --git a/packages/SettingsLib/res/values-af/strings.xml b/packages/SettingsLib/res/values-af/strings.xml
index 3ff5cf4..6289b87 100644
--- a/packages/SettingsLib/res/values-af/strings.xml
+++ b/packages/SettingsLib/res/values-af/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Gebruik Bluetooth-oudiokodek\nKeuse"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth-oudiovoorbeeldkoers"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Gebruik Bluetooth-oudiokodek\nKeuse: monsterkoers"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Dofgemaak beteken dit word nie deur foon of kopstuk gesteun nie"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth-oudiobisse per voorbeeld"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Gebruik Bluetooth-oudiokodek\nKeuse: bisse per monster"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth-oudiokanaalmodus"</string>
diff --git a/packages/SettingsLib/res/values-am/strings.xml b/packages/SettingsLib/res/values-am/strings.xml
index 264d8de..45545a7 100644
--- a/packages/SettingsLib/res/values-am/strings.xml
+++ b/packages/SettingsLib/res/values-am/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"የብሉቱዝ ኦዲዮ ኮዴክ አስጀምር\nምርጫ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"የብሉቱዝ ኦዲዮ ናሙና ፍጥነት"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"የብሉቱዝ ኦዲዮ ኮዴክን አስጀምር\nምርጫ፦ የናሙና ደረጃ አሰጣጥ"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ግራጫ መልክ ሲታይ በስልክ ወይም በጆሮ ማዳመጫ አይደገፍም ማለት ነው"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"የብሉቱዝ ኦዲዮ ቢት በናሙና"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"የብሉቱዝ ኦዲዮ ኮዴክን አስጀምር\nምርጫ፦ ቢትስ በናሙና"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"የብሉቱዝ ኦዲዮ ሰርጥ ሁነታ"</string>
diff --git a/packages/SettingsLib/res/values-ar/strings.xml b/packages/SettingsLib/res/values-ar/strings.xml
index c230236..af06fc7 100644
--- a/packages/SettingsLib/res/values-ar/strings.xml
+++ b/packages/SettingsLib/res/values-ar/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"اختيار برنامج ترميز الصوت لمشغّل\nالبلوتوث"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"معدّل عيّنة صوت بلوتوث"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"اختيار برنامج ترميز الصوت لمشغّل\nالبلوتوث: معدّل العيّنة"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"\"غير متوفّر\" تعني أن الهاتف أو سماعة الرأس لا يدعمان برنامج الترميز"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"وحدات البت لكل عيّنة في صوت بلوتوث"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"اختيار برنامج ترميز الصوت لمشغّل\nالبلوتوث: عدد وحدات البت لكل عيّنة"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"وضع قناة صوت بلوتوث"</string>
diff --git a/packages/SettingsLib/res/values-as/strings.xml b/packages/SettingsLib/res/values-as/strings.xml
index ab0ed29..49eabe1 100644
--- a/packages/SettingsLib/res/values-as/strings.xml
+++ b/packages/SettingsLib/res/values-as/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ব্লুটুথ অডিঅ\' ক\'ডেকৰ বাছনি\nআৰম্ভ কৰক"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ব্লুটুথ অডিঅ\' ছেম্পল ৰেইট"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ব্লুটুথ অডিঅ\' LDAC বাছনি\nআৰম্ভ কৰক: নমুনাৰ হাৰ"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ধোঁৱাবৰণীয়া হৈ থকা মানে এয়া ফ’ন অথবা হেডছেটটোৱে সমৰ্থন নকৰে"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"প্ৰতি ছেম্পলত ব্লুটুথ অডিঅ\' বিটসমূহ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ব্লুটুথ অডিঅ\' ক\'ডেকৰ বাছনি\nআৰম্ভ কৰক: প্ৰতি নমুনা ইমান বিট"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ব্লুটুথ অডিঅ\' চ্চেনেল ম\'ড"</string>
diff --git a/packages/SettingsLib/res/values-az/strings.xml b/packages/SettingsLib/res/values-az/strings.xml
index fe62d31..158f13a 100644
--- a/packages/SettingsLib/res/values-az/strings.xml
+++ b/packages/SettingsLib/res/values-az/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth Audio KodeK\nSeçimini aktiv edin"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth Audio Nümunə Göstəricisi"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth Audio Kodek\nSeçimini aktiv edin: Nümunə Göstəricisi"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Boz rəng telefon və ya qulaqlıq tərəfindən dəstəklənmədiyini bildirir"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Hər Nümunə Üçün Bluetooth Audio Bit"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth Audio Kodek\nSeçimini aktiv edin: Hər Nümunə üçün Bit"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth Audio Kanal Rejimi"</string>
diff --git a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
index 1619584..2709df5 100644
--- a/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsLib/res/values-b+sr+Latn/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Izaberite Bluetooth audio kodek\n"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Brzina uzorkovanja za Bluetooth audio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Izaberite Bluetooth audio kodek:\n brzina uzorkovanja"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Ako je neka stavka zasivljena, to znači da je telefon ili slušalice ne podržavaju"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bitova po uzorku za Bluetooth audio"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Izaberite Bluetooth audio kodek:\n broj bitova po uzorku"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Režim kanala za Bluetooth audio"</string>
diff --git a/packages/SettingsLib/res/values-be/strings.xml b/packages/SettingsLib/res/values-be/strings.xml
index 0f2df49..40295ea 100644
--- a/packages/SettingsLib/res/values-be/strings.xml
+++ b/packages/SettingsLib/res/values-be/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Уключыць кодэк Bluetooth Audio\nВыбар"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Частата дыскрэтызацыі Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Уключыць кодэк Bluetooth Audio\nВыбар: частата дыскрэтызацыі"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Шэрым афарбаваны функцыі, якія не падтрымліваюцца тэлефонам або гарнітурай"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Біты на сэмпл для Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Уключыць кодэк Bluetooth Audio\nВыбар: біты на дыскрэтызацыю"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Канальны рэжым Bluetooth Audio"</string>
diff --git a/packages/SettingsLib/res/values-bg/strings.xml b/packages/SettingsLib/res/values-bg/strings.xml
index a3be2812..7b25374 100644
--- a/packages/SettingsLib/res/values-bg/strings.xml
+++ b/packages/SettingsLib/res/values-bg/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Задействане на аудиокодек за Bluetooth\nИзбор"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Честота на дискретизация за звука през Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Задействане на аудиокодек за Bluetooth\nИзбор: Честота на дискретизация"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Неактивното състояние означава, че елементът не се поддържа от телефона или слушалките"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Битове на дискрет за звука през Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Задействане на аудиокодек за Bluetooth\nИзбор: Битове на дискрет"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Режим на канала на звука през Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-bn/strings.xml b/packages/SettingsLib/res/values-bn/strings.xml
index 743de50..c41a3e5 100644
--- a/packages/SettingsLib/res/values-bn/strings.xml
+++ b/packages/SettingsLib/res/values-bn/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ব্লুটুথ অডিও কোডেক ট্রিগার করুন\nএটি বেছে নেওয়া আছে"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ব্লুটুথ অডিওর নমুনা হার"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ব্লুটুথ অডিও কোডেক ট্রিগার করুন\nএটি বেছে নেওয়া আছে: স্যাম্পল রেট"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"গ্রে-আউট মানে যেখানে ফোন বা হেডসেট কাজ করে না"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"নমুনা প্রতি ব্লুটুথ অডিও বিট"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ব্লুটুথ অডিও কোডেক ট্রিগার করুন\nএটি বেছে নেওয়া আছে: বিট্স পার স্যাম্পল"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ব্লুটুথ অডিও চ্যানেল মোড"</string>
diff --git a/packages/SettingsLib/res/values-bs/strings.xml b/packages/SettingsLib/res/values-bs/strings.xml
index 75a4047..381fe4b 100644
--- a/packages/SettingsLib/res/values-bs/strings.xml
+++ b/packages/SettingsLib/res/values-bs/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Aktivirajte Bluetooth Audio Codec\nOdabir"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Brzina uzorkovanja za Bluetooth audio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Aktivirajte Bluetooth Audio Codec\nOdabir: Brzina uzorkovanja"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Ako je stavka nedostupna, to znači da je telefon ili slušalice ne podržavaju"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth audio bitovi po uzorku"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Aktivirajte Bluetooth Audio Codec\nOdabir: Bitovi po uzorku"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Način Bluetooth audio kanala"</string>
diff --git a/packages/SettingsLib/res/values-ca/strings.xml b/packages/SettingsLib/res/values-ca/strings.xml
index 8627cf3..3257dc5 100644
--- a/packages/SettingsLib/res/values-ca/strings.xml
+++ b/packages/SettingsLib/res/values-ca/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Activa el còdec d\'àudio per Bluetooth\nSelecció"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Freqüència de mostratge d’àudio per Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Activa el còdec d\'àudio per Bluetooth\nSelecció: freqüència de mostratge"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Si una opció està ombrejada, vol dir que el telèfon o els auriculars no l\'admeten"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits per mostra de l\'àudio per Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Activa el còdec d\'àudio per Bluetooth\nSelecció: bits per mostra"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Mode de canal de l\'àudio per Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-cs/strings.xml b/packages/SettingsLib/res/values-cs/strings.xml
index 6fef07a..92ba7d1 100644
--- a/packages/SettingsLib/res/values-cs/strings.xml
+++ b/packages/SettingsLib/res/values-cs/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Spustit zvukový kodek Bluetooth\nVýběr"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth Audio – vzorkovací frekvence"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Spustit zvukový kodek Bluetooth\nVýběr: vzorkovací frekvence"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Zašedlé možnosti nejsou telefonem nebo náhlavní soupravou podporovány"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth Audio – počet bitů na vzorek"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Spustit zvukový kodek Bluetooth\nVýběr: počet bitů na vzorek"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth Audio – režim kanálu"</string>
diff --git a/packages/SettingsLib/res/values-da/strings.xml b/packages/SettingsLib/res/values-da/strings.xml
index 80ee95e..d836b4a 100644
--- a/packages/SettingsLib/res/values-da/strings.xml
+++ b/packages/SettingsLib/res/values-da/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Udløs codec for Bluetooth-lyd\nValg"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Eksempelfrekvens for Bluetooth-lyd"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Udløs codec for Bluetooth-lyd\nValg: Samplingfrekvens"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Nedtonede funktioner understøttes ikke af telefonen eller headsettet."</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bit pr. eksempel for Bluetooth-lyd"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Udløs codec for Bluetooth-lyd\nValg: Bits pr. sampling"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Kanaltilstand for Bluetooth-lyd"</string>
diff --git a/packages/SettingsLib/res/values-de/strings.xml b/packages/SettingsLib/res/values-de/strings.xml
index 1cd1e55..dff8247 100644
--- a/packages/SettingsLib/res/values-de/strings.xml
+++ b/packages/SettingsLib/res/values-de/strings.xml
@@ -234,6 +234,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth-Audio-Codec auslösen\nAuswahl"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth-Audio-Abtastrate"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth-Audio-Codec auslösen\nAuswahl: Abtastrate"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Wenn etwas ausgegraut ist, wird es nicht vom Smartphone oder Headset unterstützt"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth-Audio/Bits pro Sample"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth-Audio-Codec auslösen\nAuswahl: Bits pro Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth-Audiokanal-Modus"</string>
diff --git a/packages/SettingsLib/res/values-el/strings.xml b/packages/SettingsLib/res/values-el/strings.xml
index 7dee120..a86d259 100644
--- a/packages/SettingsLib/res/values-el/strings.xml
+++ b/packages/SettingsLib/res/values-el/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Ενεργοποίηση κωδικοποιητή ήχου Bluetooth\nΕπιλογή"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Ρυθμός δειγματοληψίας ήχου Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Ενεργοποίηση κωδικοποιητή ήχου Bluetooth\nΕπιλογή: Ρυθμός δειγματοληψίας"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Οι γκριζαρισμένες επιλογές δεν υποστηρίζονται από τηλέφωνο ή ακουστικά"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bit ανά δείγμα ήχου Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Ενεργοποίηση κωδικοποιητή ήχου Bluetooth\nΕπιλογή: Bit ανά δείγμα"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Λειτουργία καναλιού ήχου Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-en-rAU/strings.xml b/packages/SettingsLib/res/values-en-rAU/strings.xml
index ba9beb6..cadafce 100644
--- a/packages/SettingsLib/res/values-en-rAU/strings.xml
+++ b/packages/SettingsLib/res/values-en-rAU/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Trigger Bluetooth Audio Codec\nSelection"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth audio sample rate"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Trigger Bluetooth Audio Codec\nSelection: Sample Rate"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Grey-out means not supported by phone or headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth audio bits per sample"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Trigger Bluetooth Audio Codec\nSelection: Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth audio channel mode"</string>
diff --git a/packages/SettingsLib/res/values-en-rCA/strings.xml b/packages/SettingsLib/res/values-en-rCA/strings.xml
index ba9beb6..cadafce 100644
--- a/packages/SettingsLib/res/values-en-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-en-rCA/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Trigger Bluetooth Audio Codec\nSelection"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth audio sample rate"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Trigger Bluetooth Audio Codec\nSelection: Sample Rate"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Grey-out means not supported by phone or headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth audio bits per sample"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Trigger Bluetooth Audio Codec\nSelection: Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth audio channel mode"</string>
diff --git a/packages/SettingsLib/res/values-en-rGB/strings.xml b/packages/SettingsLib/res/values-en-rGB/strings.xml
index ba9beb6..cadafce 100644
--- a/packages/SettingsLib/res/values-en-rGB/strings.xml
+++ b/packages/SettingsLib/res/values-en-rGB/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Trigger Bluetooth Audio Codec\nSelection"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth audio sample rate"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Trigger Bluetooth Audio Codec\nSelection: Sample Rate"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Grey-out means not supported by phone or headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth audio bits per sample"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Trigger Bluetooth Audio Codec\nSelection: Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth audio channel mode"</string>
diff --git a/packages/SettingsLib/res/values-en-rIN/strings.xml b/packages/SettingsLib/res/values-en-rIN/strings.xml
index ba9beb6..cadafce 100644
--- a/packages/SettingsLib/res/values-en-rIN/strings.xml
+++ b/packages/SettingsLib/res/values-en-rIN/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Trigger Bluetooth Audio Codec\nSelection"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth audio sample rate"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Trigger Bluetooth Audio Codec\nSelection: Sample Rate"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Grey-out means not supported by phone or headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth audio bits per sample"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Trigger Bluetooth Audio Codec\nSelection: Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth audio channel mode"</string>
diff --git a/packages/SettingsLib/res/values-en-rXC/strings.xml b/packages/SettingsLib/res/values-en-rXC/strings.xml
index 0f11774..444dbcb 100644
--- a/packages/SettingsLib/res/values-en-rXC/strings.xml
+++ b/packages/SettingsLib/res/values-en-rXC/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Trigger Bluetooth Audio Codec\nSelection"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth Audio Sample Rate"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Trigger Bluetooth Audio Codec\nSelection: Sample Rate"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Gray-out means not supported by phone or headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth Audio Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Trigger Bluetooth Audio Codec\nSelection: Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth Audio Channel Mode"</string>
diff --git a/packages/SettingsLib/res/values-es-rUS/strings.xml b/packages/SettingsLib/res/values-es-rUS/strings.xml
index 41c817e..6a6f800 100644
--- a/packages/SettingsLib/res/values-es-rUS/strings.xml
+++ b/packages/SettingsLib/res/values-es-rUS/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Activar el códec de audio por Bluetooth\nSelección"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Frecuencia de muestreo del audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Activar el códec de audio por Bluetooth\nSelección: porcentaje de la muestra"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Si la opción está inhabilitada, significa que el teléfono o los auriculares no la admiten"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits por muestra del audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Activar el códec de audio por Bluetooth\nSelección: bits por muestra"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modo de canal del audio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-es/strings.xml b/packages/SettingsLib/res/values-es/strings.xml
index 897eaa3..e29773a 100644
--- a/packages/SettingsLib/res/values-es/strings.xml
+++ b/packages/SettingsLib/res/values-es/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Activar el códec de audio por Bluetooth\nSelección"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Frecuencia de muestreo de audio de Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Activar el códec de audio por Bluetooth\nSelección: frecuencia de muestreo"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Si una opción aparece atenuada, no es compatible con el teléfono o los auriculares"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits por muestra del audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Activar el códec de audio por Bluetooth\nSelección: bits por muestra"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modo de canal de audio de Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-et/strings.xml b/packages/SettingsLib/res/values-et/strings.xml
index 9b94222..f425e1e 100644
--- a/packages/SettingsLib/res/values-et/strings.xml
+++ b/packages/SettingsLib/res/values-et/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetoothi helikodeki käivitamine\nValik"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetoothi heli diskreetimissagedus"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetoothi helikodeki käivitamine\nValik: diskreetimissagedus"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Hallilt kuvamine tähendab, et telefon või peakomplekt seda ei toeta"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetoothi heli bitte diskreedi kohta"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetoothi helikodeki käivitamine\nValik: bittide arv diskreedi kohta"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetoothi heli kanalirežiim"</string>
diff --git a/packages/SettingsLib/res/values-eu/strings.xml b/packages/SettingsLib/res/values-eu/strings.xml
index b0e4b26..e9810e5 100644
--- a/packages/SettingsLib/res/values-eu/strings.xml
+++ b/packages/SettingsLib/res/values-eu/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Abiarazi Bluetooth bidezko audio-kodeka\nHautapena"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth bidezko audioaren lagin-abiadura"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Abiarazi Bluetooth bidezko audio-kodeka\nHautapena: lagin-abiadura"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Kolore apalagoz agertzen bada, esan nahi du telefonoak edo entzungailuak ez duela onartzen"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth bidezko audioaren lagin bakoitzeko bit kopurua"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Abiarazi Bluetooth bidezko audio-kodeka\nHautapena: lagin bakoitzeko bitak"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth bidezko audioaren kanalaren modua"</string>
diff --git a/packages/SettingsLib/res/values-fa/strings.xml b/packages/SettingsLib/res/values-fa/strings.xml
index 7298826..2f25ab2 100644
--- a/packages/SettingsLib/res/values-fa/strings.xml
+++ b/packages/SettingsLib/res/values-fa/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"راهاندازی کدک صوتی بلوتوثی\nانتخاب"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"سرعت نمونه بلوتوث صوتی"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"راهاندازی کدک صوتی بلوتوثی\nانتخاب: سرعت نمونه"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"«خاکستری» به این معناست که تلفن یا هدست از آن پشتیبانی نمیکند"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"بیتهای بلوتوث صوتی در هر نمونه"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"راهاندازی کدک صوتی بلوتوثی\nانتخاب: تعداد بیت در نمونه"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"حالت کانال بلوتوث صوتی"</string>
diff --git a/packages/SettingsLib/res/values-fi/strings.xml b/packages/SettingsLib/res/values-fi/strings.xml
index 6f58f03..a9904af 100644
--- a/packages/SettingsLib/res/values-fi/strings.xml
+++ b/packages/SettingsLib/res/values-fi/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Käynnistä Bluetooth-äänipakkaus\nValinta"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth-ääninäytteen siirtonopeus"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Käynnistä Bluetooth-äänipakkaus\nValinta: esimerkkinopeus"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Himmennys tarkoittaa, että puhelin tai kuulokemikrofoni ei tue tätä"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth-äänen bittiä/näyte-arvo"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Käynnistä Bluetooth-äänipakkaus\nValinta: bittiä/näyte"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth-äänen kanavatila"</string>
diff --git a/packages/SettingsLib/res/values-fr-rCA/strings.xml b/packages/SettingsLib/res/values-fr-rCA/strings.xml
index a5526f3..0f1c213 100644
--- a/packages/SettingsLib/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsLib/res/values-fr-rCA/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Déclencher le codec audio Bluetooth\nSélection"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Taux d\'échantillonnage pour l\'audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Déclencher le codec audio Bluetooth\nSélection : taux d\'échantillonnage"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Une option grisée signifie qu\'elle n\'est pas prise en charge par le téléphone ou par les écouteurs"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits par échantillon pour l\'audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Déclencher le codec audio Bluetooth\nSélection : bits par échantillon"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Mode de canal pour l\'audio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-fr/strings.xml b/packages/SettingsLib/res/values-fr/strings.xml
index 069825a..0bfb3c7 100644
--- a/packages/SettingsLib/res/values-fr/strings.xml
+++ b/packages/SettingsLib/res/values-fr/strings.xml
@@ -234,6 +234,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Critère pour déclencher la sélection du codec audio\nBluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Taux d\'échantillonnage audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Critère de sélection du codec audio\nBluetooth : taux d\'échantillonnage"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Si le codec est grisé, c\'est qu\'il n\'est pas compatible avec le téléphone ou le casque"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits par échantillon pour l\'audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Critère de sélection du codec audio\nBluetooth : nombre de bits par échantillon"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Mode de chaîne de l\'audio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-gl/strings.xml b/packages/SettingsLib/res/values-gl/strings.xml
index eaab027..213d33a 100644
--- a/packages/SettingsLib/res/values-gl/strings.xml
+++ b/packages/SettingsLib/res/values-gl/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Activar códec de audio por Bluetooth\nSelección"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Taxa de mostra de audio por Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Activar códec de audio por Bluetooth\nSelección: taxa de mostra"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Os elementos deshabilitados non son compatibles co teléfono ou cos auriculares"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits por mostra de audio por Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Activar códec de audio por Bluetooth\nSelección: bits por mostra"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modo de canle de audio por Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-gu/strings.xml b/packages/SettingsLib/res/values-gu/strings.xml
index 00fd024..8192d47 100644
--- a/packages/SettingsLib/res/values-gu/strings.xml
+++ b/packages/SettingsLib/res/values-gu/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"બ્લૂટૂથ ઑડિઓ કોડેક\nપસંદગી ટ્રિગર કરો"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"બ્લૂટૂથ ઑડિઓ નમૂના દર"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"બ્લૂટૂથ ઑડિઓ કોડેક\nપસંદગી ટ્રિગર કરો: નમૂના રેટ"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"નિષ્ક્રિય હોવાનો અર્થ એ છે કે ફોન અથવા હૅડસેટ દ્વારા સપોર્ટ આપવામાં આવતો નથી"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"નમૂના દીઠ બ્લૂટૂથ ઑડિઓ બિટ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"બ્લૂટૂથ ઑડિઓ કોડેક\nપસંદગી ટ્રિગર કરો: નમૂના દીઠ બિટ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"બ્લૂટૂથ ઑડિઓ ચેનલ મોડ"</string>
diff --git a/packages/SettingsLib/res/values-hi/strings.xml b/packages/SettingsLib/res/values-hi/strings.xml
index 96aec94..207a479 100644
--- a/packages/SettingsLib/res/values-hi/strings.xml
+++ b/packages/SettingsLib/res/values-hi/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ब्लूटूथ ऑडियो कोडेक का\nविकल्प चालू करें"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ब्लूटूथ ऑडियो नमूना दर"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ब्लूटूथ ऑडियो कोडेक का\nयह विकल्प चालू करें: सैंपल की दर"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"धूसर किया गया का मतलब है कि फ़ोन या हेडसेट पर काम नहीं करता"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"ब्लूटूथ ऑडियो बिट प्रति नमूना"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ब्लूटूथ ऑडियो कोडेक का\nयह विकल्प चालू करें: हर सैंपल के लिए बिट की संख्या"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ब्लूटूथ ऑडियो चैनल मोड"</string>
diff --git a/packages/SettingsLib/res/values-hr/strings.xml b/packages/SettingsLib/res/values-hr/strings.xml
index 6df46ca..97a5862 100644
--- a/packages/SettingsLib/res/values-hr/strings.xml
+++ b/packages/SettingsLib/res/values-hr/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Pokreni odabir kodeka za Bluetooth\nAudio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Brzina uzorka za Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Pokreni odabir kodeka za Bluetooth\nAudio: brzina uzorkovanja"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Ako je stavka siva, znači da je telefon ili slušalice ne podržavaju"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bitovi po uzorku za Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Pokreni odabir kodeka za Bluetooth\nAudio: bitovi po uzorku"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Način kanala za Bluetooth Audio"</string>
diff --git a/packages/SettingsLib/res/values-hu/strings.xml b/packages/SettingsLib/res/values-hu/strings.xml
index 6b5b05e..cba6c65 100644
--- a/packages/SettingsLib/res/values-hu/strings.xml
+++ b/packages/SettingsLib/res/values-hu/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth-hangkodek aktiválása\nKiválasztás"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth hang – mintavételezési gyakoriság"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth-hangkodek aktiválása\nKiválasztás: Mintavételezési gyakoriság"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"A kiszürkítés azt jelenti, hogy nem támogatja telefon vagy headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth hang – bit/minta"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth-hangkodek aktiválása\nKiválasztás: Bit/minta"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth hang – Csatornamód"</string>
diff --git a/packages/SettingsLib/res/values-hy/strings.xml b/packages/SettingsLib/res/values-hy/strings.xml
index c4002b9..a76c960 100644
--- a/packages/SettingsLib/res/values-hy/strings.xml
+++ b/packages/SettingsLib/res/values-hy/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Գործարկել Bluetooth աուդիո կոդեկը\nԸնտրություն"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth աուդիոյի ընդհատավորման հաճախականությունը"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Գործարկել Bluetooth աուդիո կոդեկը\nԸնտրություն՝ ընդհատավորման հաճախականություն"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Եթե տարրը մոխրագույն է, նշանակում է, որ չի աջակցվում հեռախոսի համ ականջակալի կողմից։"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth աուդիո, բիթ / նմուշ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Գործարկել Bluetooth աուդիո կոդեկը\nԸնտրություն՝ բիթ/նմուշ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth աուդիո կապուղու ռեժիմը"</string>
diff --git a/packages/SettingsLib/res/values-in/strings.xml b/packages/SettingsLib/res/values-in/strings.xml
index 753f225..0feae4e 100644
--- a/packages/SettingsLib/res/values-in/strings.xml
+++ b/packages/SettingsLib/res/values-in/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Aktifkan Codec Audio Bluetooth\nPilihan"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Frekuensi Sampel Audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Aktifkan Codec Audio Bluetooth\nPilihan: Frekuensi Sampel"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Berwarna abu-abu artinya tidak didukung oleh ponsel atau headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bit Per Sampel Audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Aktifkan Codec Audio Bluetooth\nPilihan: Bit Per Sampel"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Mode Channel Audio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-is/strings.xml b/packages/SettingsLib/res/values-is/strings.xml
index b1d40bf..d45f433 100644
--- a/packages/SettingsLib/res/values-is/strings.xml
+++ b/packages/SettingsLib/res/values-is/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Virkja Bluetooth-hljóðkóðara\nVal"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth hljóðtökutíðni"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Virkja Bluetooth-hljóðkóðara\nVal: upptökutíðni"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Óvirkt þýðir að síminn eða höfuðtólin styðja þetta ekki"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth hljóðbitar í úrtaki"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Virkja Bluetooth-hljóðkóðara\nVal: bitar í úrtaki"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Hljóðrásarstilling Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-it/strings.xml b/packages/SettingsLib/res/values-it/strings.xml
index 7f2bd3e..fe111fc 100644
--- a/packages/SettingsLib/res/values-it/strings.xml
+++ b/packages/SettingsLib/res/values-it/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Attiva il codec audio Bluetooth\nSelezione"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Frequenza campionamento audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Attiva il codec audio Bluetooth\nSelezione: Frequenza di campionamento"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Se il codec non è selezionabile significa che non è supportato dal telefono o dalle cuffie"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bit per campione dell\'audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Attiva il codec audio Bluetooth\nSelezione: bit per campione"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modalità canale audio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-iw/strings.xml b/packages/SettingsLib/res/values-iw/strings.xml
index bdd1bab..8b47c54 100644
--- a/packages/SettingsLib/res/values-iw/strings.xml
+++ b/packages/SettingsLib/res/values-iw/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"הפעלת Codec אודיו ל-Bluetooth\nבחירה"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"קצב דגימה של אודיו ל-Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"הפעלת Codec אודיו ל-Bluetooth\nבחירה: קצב דגימה"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"כשזה מופיע באפור, אין לזה תמיכה בטלפון או באוזניות"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"מספר סיביות לדגימה באודיו ל-Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"הפעלת Codec אודיו ל-Bluetooth\nבחירה: סיביות לדגימה"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"מצב של ערוץ אודיו ל-Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-ja/strings.xml b/packages/SettingsLib/res/values-ja/strings.xml
index a6192a4..c955a39 100644
--- a/packages/SettingsLib/res/values-ja/strings.xml
+++ b/packages/SettingsLib/res/values-ja/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth オーディオ コーデックを起動\n選択"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth オーディオ サンプルレート"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth オーディオ コーデックを起動\n選択: サンプルレート"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"グレー表示のコーデックは、スマートフォンまたはヘッドセットが対応していません"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"サンプルあたりの Bluetooth オーディオ ビット"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth オーディオ コーデックを起動\n選択: サンプルあたりのビット数"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth オーディオ チャンネル モード"</string>
diff --git a/packages/SettingsLib/res/values-ka/strings.xml b/packages/SettingsLib/res/values-ka/strings.xml
index a3633f6..d8fda4b 100644
--- a/packages/SettingsLib/res/values-ka/strings.xml
+++ b/packages/SettingsLib/res/values-ka/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth-ის აუდიო კოდეკის გაშვება\nარჩევანი"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth აუდიოს დისკრეტიზაციის სიხშირე"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth-ის აუდიო კოდეკის გაშვება\nარჩევანი: ნიმუშთა მაჩვენებელი"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"არააქტიური ნიშნავს, რომ ტელეფონის ან ყურსასმენის მიერ მხარდაჭერილი არ არის"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth აუდიოს ბიტების რაოდენობა ნიმუშზე"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth-ის აუდიო კოდეკის გაშვება\nარჩევანი: ბიტები ნიმუშზე"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth აუდიოს არხის რეჟიმი"</string>
diff --git a/packages/SettingsLib/res/values-kk/strings.xml b/packages/SettingsLib/res/values-kk/strings.xml
index 0962e55..025532d 100644
--- a/packages/SettingsLib/res/values-kk/strings.xml
+++ b/packages/SettingsLib/res/values-kk/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth аудиокодегін іске қосу\nТаңдау"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth арқылы дыбыс іріктеу жиілігі"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth аудиокодегін іске қосу\nТаңдау: іріктеу жылдамдығы"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Сұр түсті болса, бұл оған телефонда не гарнитурада қолдау көрсетілмейтінін білдіреді."</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth арқылы дыбыстың разрядтылық мөлшері"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth аудиокодегін іске қосу\nТаңдау: разрядтылық"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth дыбыстық арна режимі"</string>
diff --git a/packages/SettingsLib/res/values-km/strings.xml b/packages/SettingsLib/res/values-km/strings.xml
index 45620e8..e9f5ab0 100644
--- a/packages/SettingsLib/res/values-km/strings.xml
+++ b/packages/SettingsLib/res/values-km/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ជំរុញការជ្រើសរើសកូឌិកសំឡេង\nប៊្លូធូស"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"អត្រាគំរូសំឡេងប៊្លូធូស"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ជំរុញការជ្រើសរើសកូឌិកសំឡេង\nប៊្លូធូស៖ អត្រាគំរូ"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ការកំណត់ជាពណ៌ប្រផេះមានន័យថាទូរសព្ទ ឬកាសមិនស្គាល់ទេ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"កម្រិតប៊ីតក្នុងមួយគំរូនៃសំឡេងប៊្លូធូស"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ជំរុញការជ្រើសរើសកូឌិកសំឡេង\nប៊្លូធូស៖ កម្រិតប៊ីតក្នុងមួយគំរូ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"មុខងាររលកសញ្ញាសំឡេងប៊្លូធូស"</string>
diff --git a/packages/SettingsLib/res/values-kn/strings.xml b/packages/SettingsLib/res/values-kn/strings.xml
index 1fc2e4a..4feccaf 100644
--- a/packages/SettingsLib/res/values-kn/strings.xml
+++ b/packages/SettingsLib/res/values-kn/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ಬ್ಲೂಟೂತ್ ಆಡಿಯೋ ಕೋಡೆಕ್ ಅನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡಿ\nಆಯ್ಕೆ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ಬ್ಲೂಟೂತ್ ಆಡಿಯೋ ಮಾದರಿ ದರ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ಬ್ಲೂಟೂತ್ ಆಡಿಯೋ ಕೋಡೆಕ್ ಅನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡಿ\nಆಯ್ಕೆ: ಮಾದರಿ ರೇಟ್"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ಬೂದುಬಣ್ಣಕ್ಕೆ ತಿರುಗುವುದು ಎಂದರೆ ಫೋನ್ ಅಥವಾ ಹೆಡ್ಸೆಟ್ ಬೆಂಬಲಿಸುವುದಿಲ್ಲ ಎಂದರ್ಥ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"ಬ್ಲೂಟೂತ್ ಆಡಿಯೊ ಬಿಟ್ಸ್ನ ಪ್ರತಿ ಮಾದರಿ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ಬ್ಲೂಟೂತ್ ಆಡಿಯೋ ಕೋಡೆಕ್ ಅನ್ನು ಟ್ರಿಗ್ಗರ್ ಮಾಡಿ \nಆಯ್ಕೆ: ಬಿಟ್ಸ್ನ ಪ್ರತಿ ಮಾದರಿ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ಬ್ಲೂಟೂತ್ ಆಡಿಯೋ ಚಾನೆಲ್ ಮೋಡ್"</string>
diff --git a/packages/SettingsLib/res/values-ko/strings.xml b/packages/SettingsLib/res/values-ko/strings.xml
index 8e7c697..4707ef8 100644
--- a/packages/SettingsLib/res/values-ko/strings.xml
+++ b/packages/SettingsLib/res/values-ko/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"블루투스 오디오 코덱 실행\n선택"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"블루투스 오디오 샘플링 비율"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"블루투스 오디오 코덱 실행\n선택: 샘플링 비율"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"비활성화되어 있으면 스마트폰 또는 헤드셋에서 지원하지 않음을 의미함"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"블루투스 오디오 샘플당 비트"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"블루투스 오디오 코덱 실행\n선택: 샘플당 비트"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"블루투스 오디오 채널 모드"</string>
diff --git a/packages/SettingsLib/res/values-ky/strings.xml b/packages/SettingsLib/res/values-ky/strings.xml
index 18a1468..2197a9f 100644
--- a/packages/SettingsLib/res/values-ky/strings.xml
+++ b/packages/SettingsLib/res/values-ky/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth Audio кодегин иштетүү\nТандоо"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth аудио үлгүсүнүн ылдамдыгы"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth Audio кодегин иштетүү\nТандоо: Үлгү жыштыгы"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Боз түс менен белгиленген кодек – бул телефондо же гарнитурада колдоого алынбайт дегенди билдирет"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Бир үлгүдөгү Bluetooth аудио биттери"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth Audio кодегин иштетүү\nТандоо: Бир үлгүдөгү биттер"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth аудио каналынын режими"</string>
diff --git a/packages/SettingsLib/res/values-lo/strings.xml b/packages/SettingsLib/res/values-lo/strings.xml
index 808d5a7..de3f644 100644
--- a/packages/SettingsLib/res/values-lo/strings.xml
+++ b/packages/SettingsLib/res/values-lo/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ເປີດໃຊ້ Bluetooth Audio Codec\nການເລືອກ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth Audio Sample Rate"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ເປີດໃຊ້ Bluetooth Audio Codec\nການເລືອກ: Sample Rate"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ສ່ວນທີ່ເປັນສີເທົາໝາຍຄວາມວ່າບໍ່ຮອງຮັບໂດຍໂທລະສັບ ຫຼື ຊຸດຫູຟັງ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth Audio Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ເປີດໃຊ້ Bluetooth Audio Codec\nການເລືອກ: Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ໂໝດຊ່ອງສຽງ Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-lt/strings.xml b/packages/SettingsLib/res/values-lt/strings.xml
index 78d1b1b..6157a87 100644
--- a/packages/SettingsLib/res/values-lt/strings.xml
+++ b/packages/SettingsLib/res/values-lt/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Suaktyvinti „Bluetooth“ garso kodeką\nPasirinkimas"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"„Bluetooth“ garso pavyzdžio dažnis"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Suaktyvinti „Bluetooth“ garso kodeką\nPasirinkimas: pavyzdžio dažnis"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Pilka spalva reiškia, kad telefonas arba ausinės nepalaiko tos funkcijos"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"„Bluetooth“ garso įrašo bitų skaičius pavyzdyje"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Suaktyvinti „Bluetooth“ garso kodeką\nPasirinkimas: bitų skaičius pavyzdyje"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"„Bluetooth“ garso kanalo režimas"</string>
diff --git a/packages/SettingsLib/res/values-lv/strings.xml b/packages/SettingsLib/res/values-lv/strings.xml
index 0ae10aa..51b909c 100644
--- a/packages/SettingsLib/res/values-lv/strings.xml
+++ b/packages/SettingsLib/res/values-lv/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Aktivizēt Bluetooth audio kodeku\nAtlase"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth audio iztveršanas ātrums"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Aktivizēt Bluetooth audio kodeku\nAtlase: iztveršanas ātrums"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Ja vienums ir pelēkots, tas netiek atbalstīts tālrunī vai austiņās."</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth audio bitu skaits iztvērumā"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Aktivizēt Bluetooth audio kodeku\nAtlase: bitu skaitu iztvērumā"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth audio kanāla režīms"</string>
diff --git a/packages/SettingsLib/res/values-mk/strings.xml b/packages/SettingsLib/res/values-mk/strings.xml
index 9850ac5..9a0d2da 100644
--- a/packages/SettingsLib/res/values-mk/strings.xml
+++ b/packages/SettingsLib/res/values-mk/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Вклучете го аудио кодекот преку Bluetooth\nСелекција"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Стапка на семпл преку Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Вклучете го аудио кодекот преку Bluetooth\nСелекција: стапка на примерокот"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Ако е сиво, значи дека не е поддржано од телефонот или од слушалките"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Аудио бит-по-семпл преку Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Вклучете го аудио кодекот преку Bluetooth\nСелекција: бит-по-семпл"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Режим на канал за аудио преку Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-ml/strings.xml b/packages/SettingsLib/res/values-ml/strings.xml
index 2692a30..e9558fc 100644
--- a/packages/SettingsLib/res/values-ml/strings.xml
+++ b/packages/SettingsLib/res/values-ml/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth Audio Codec\nSelection ട്രിഗ്ഗര് ചെയ്യുക"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth ഓഡിയോ സാമ്പിൾ നിരക്ക്"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth Audio Codec\nSelection ട്രിഗ്ഗര് ചെയ്യുക: സാമ്പിൾ റേറ്റ്"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ചാരനിറത്തിലാക്കിയിട്ടുണ്ടെങ്കിൽ, ഫോണോ ഹെഡ്സെറ്റോ പിന്തുണയ്ക്കുന്നില്ലെന്നാണ് അർത്ഥം"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"പ്രതി സാമ്പിളിലെ Bluetooth ഓഡിയോ ബിറ്റ് നി"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth Audio Codec\nSelection ട്രിഗ്ഗര് ചെയ്യുക: ഓരോ സാമ്പിളിനുള്ള ബിറ്റുകൾ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth ഓഡിയോ ചാനൽ മോഡ്"</string>
diff --git a/packages/SettingsLib/res/values-mn/strings.xml b/packages/SettingsLib/res/values-mn/strings.xml
index aa4ec76..4997f0b 100644
--- a/packages/SettingsLib/res/values-mn/strings.xml
+++ b/packages/SettingsLib/res/values-mn/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth-н аудио кодлогчийг өдөөх\nСонголт"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth аудио жишээний үнэлгээ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth-н аудио кодлогчийг өдөөх\nСонголт: Жишээ үнэлгээ"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Идэвхгүй саарал байх нь утас эсвэл чихэвч дэмждэггүй болохыг илтгэнэ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Жишээ тутмын Bluetooth аудионы бит"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth-н аудио кодлогчийг өдөөх\nСонголт: Жишээ бүрийн бит"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth аудио сувгийн горим"</string>
diff --git a/packages/SettingsLib/res/values-mr/strings.xml b/packages/SettingsLib/res/values-mr/strings.xml
index 966cdff..1dbd592 100644
--- a/packages/SettingsLib/res/values-mr/strings.xml
+++ b/packages/SettingsLib/res/values-mr/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ब्लूटूथ ऑडिओ Codec ट्रिगर करा\nनिवड"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ब्लूटूथ ऑडिओ पॅटर्न दर"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ब्लूटूथ ऑडिओ Codec ट्रिगर करा\nनिवड: नमुना दर"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"फोन किंवा हेडसेटला सपोर्ट करत नाही म्हणजे ती निकामी झाली आहे"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"प्रति पॅटर्न ब्लूटूध ऑडिओ बिट"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ब्लूटूथ ऑडिओ Codec ट्रिगर करा\nनिवड: बिट प्रति नमुना"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ब्लूटूथ ऑडिओ चॅनेल मोड"</string>
diff --git a/packages/SettingsLib/res/values-ms/strings.xml b/packages/SettingsLib/res/values-ms/strings.xml
index 88d7c7d..790480d 100644
--- a/packages/SettingsLib/res/values-ms/strings.xml
+++ b/packages/SettingsLib/res/values-ms/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Cetuskan Codec Audio Bluetooth\nPilihan"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Kadar Sampel Audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Cetuskan Codec Audio Bluetooth\nPilihan: Kadar Sampel"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Bahagian yang dikelabukan bermaksud tidak disokong oleh telefon atau set kepala"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bit Per Sampel Audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Cetuskan Codec Audio Bluetooth\nPilihan: Bit Per Sampel"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Mod Saluran Audio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-my/strings.xml b/packages/SettingsLib/res/values-my/strings.xml
index 6dfd290..dc81d05 100644
--- a/packages/SettingsLib/res/values-my/strings.xml
+++ b/packages/SettingsLib/res/values-my/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ဘလူးတုသ် အသံ LDAC ကိုးဒက်ခ် ဖွင့်ခြင်း\nရွေးချယ်မှု"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ဘလူးတုသ်အသံနမူနာနှုန်း"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ဘလူးတုသ် အသံ ကိုးဒက်ခ် ဖွင့်ခြင်း\nရွေးချယ်မှု- နမူနာနှုန်း"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"မီးခိုးရောင် ခြယ်ထားခြင်းသည် ဖုန်း သို့မဟုတ် မိုက်ခွက်ပါနားကြပ်မှ ပံ့ပိုးထားမှုမရှိခြင်းကို ဆိုလိုသည်။"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"နမူနာတစ်ခုစီတွင် ပါဝင်သော ဘလူးတုသ်အသံပမာဏ Bits"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ဘလူးတုသ် အသံ ကိုးဒက်ခ် ဖွင့်ခြင်း\nရွေးချယ်မှု- နမူနာတစ်ခုစီအတွက် Bits"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ဘလူးတုသ်အသံချန်နယ်မုဒ်"</string>
diff --git a/packages/SettingsLib/res/values-nb/strings.xml b/packages/SettingsLib/res/values-nb/strings.xml
index 760c409..d0e4966 100644
--- a/packages/SettingsLib/res/values-nb/strings.xml
+++ b/packages/SettingsLib/res/values-nb/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Utløs kodek for Bluetooth-lyd\nValg"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Samplefrekvens for Bluetooth-lyd"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Utløs kodek for Bluetooth-lyd\nValg: samplefrekvens"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Hvis den er nedtonet, støttes den ikke av telefonen eller hodetelefonene"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits per sample for Bluetooth-lyd"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Utløs kodek for Bluetooth-lyd\nValg: bits per sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Kanalmodus for Bluetooth-lyd"</string>
diff --git a/packages/SettingsLib/res/values-ne/strings.xml b/packages/SettingsLib/res/values-ne/strings.xml
index 77f87ff..d8ed4cb 100644
--- a/packages/SettingsLib/res/values-ne/strings.xml
+++ b/packages/SettingsLib/res/values-ne/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ब्लुटुथ अडियो कोडेक ट्रिगर गर्नुहोस्\nचयन"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ब्लुटुथ अडियोको नमूना दर"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ब्लुटुथ अडियो कोडेक ट्रिगर गर्नुहोस्\nचयन: नमुना दर"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"खरानी रङले भरिएको भन्नाले फोन वा हेडसेटले समर्थन नगरेको बुझाउँछ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"प्रति नमूना ब्लुटुथ अडियोका बिटहरू"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ब्लुटुथ अडियो कोडेक ट्रिगर गर्नुहोस्\nचयन: बिट प्रति नमुना"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ब्लुटुथ अडियो च्यानलको मोड"</string>
diff --git a/packages/SettingsLib/res/values-nl/strings.xml b/packages/SettingsLib/res/values-nl/strings.xml
index 55f56d9..d5ce540 100644
--- a/packages/SettingsLib/res/values-nl/strings.xml
+++ b/packages/SettingsLib/res/values-nl/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Codec voor Bluetooth-audio activeren\nSelectie"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Sample rate van Bluetooth-audio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Codec voor Bluetooth-audio activeren\nSelectie: Bemonsteringsfrequentie"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Uitgegrijsd betekent niet ondersteund door telefoon of headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits per sample voor Bluetooth-audio"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Codec voor Bluetooth-audio activeren\nSelectie: Bits per sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Kanaalmodus voor Bluetooth-audio"</string>
diff --git a/packages/SettingsLib/res/values-or/strings.xml b/packages/SettingsLib/res/values-or/strings.xml
index 98c302d..024bd3c 100644
--- a/packages/SettingsLib/res/values-or/strings.xml
+++ b/packages/SettingsLib/res/values-or/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ବ୍ଲୁଟୂଥ୍ ଅଡିଓ କୋଡେକ୍\nସିଲେକ୍ସନ୍କୁ ଗତିଶୀଳ କରନ୍ତୁ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ବ୍ଲୁଟୂଥ୍ ଅଡିଓ ସାମ୍ପଲ୍ ରେଟ୍"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ବ୍ଲୁଟୂଥ୍ ଅଡିଓ କୋଡେକ୍\nସିଲେକ୍ସନ୍କୁ ଗତିଶୀଳ କରନ୍ତୁ: ସାମ୍ପଲ୍ ରେଟ୍"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ଗ୍ରେ-ଆଉଟ୍ ଅର୍ଥ ଫୋନ୍ କିମ୍ବା ହେଡ୍ସେଟ୍ରେ ସମର୍ଥନ କରୁନାହିଁ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"ନମୁନା ପିଛା ବ୍ଲୁଟୂଥ୍ ଅଡିଓ ବିଟ୍ସ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ବ୍ଲୁଟୂଥ୍ ଅଡିଓ କୋଡେକ୍\nସିଲେକ୍ସନ୍କୁ ଗତିଶୀଳ କରନ୍ତୁ: ନମୁନା ପିଛା ବିଟ୍ସ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ବ୍ଲୁଟୂଥ୍ ଅଡିଓ ଚ୍ୟାନେଲ୍ ମୋଡ୍"</string>
diff --git a/packages/SettingsLib/res/values-pa/strings.xml b/packages/SettingsLib/res/values-pa/strings.xml
index 525ad2e..042bbf7 100644
--- a/packages/SettingsLib/res/values-pa/strings.xml
+++ b/packages/SettingsLib/res/values-pa/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ਬਲੂਟੁੱਥ ਆਡੀਓ ਕੋਡੇਕ\nਚੋਣ ਨੂੰ ਟ੍ਰਿਗਰ ਕਰੋ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"ਬਲੂਟੁੱਥ ਆਡੀਓ ਸੈਂਪਲ ਰੇਟ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ਬਲੂਟੁੱਥ ਆਡੀਓ ਕੋਡੇਕ\nਚੋਣ ਨੂੰ ਟ੍ਰਿਗਰ ਕਰੋ: ਸੈਂਪਲ ਰੇਟ"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"ਅਯੋਗ ਦਾ ਮਤਲਬ ਹੈ ਫ਼ੋਨ ਜਾਂ ਹੈੱਡਸੈੱਟ ਵੱਲੋਂ ਸਮਰਥਿਤ ਨਹੀਂ ਹੈ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"ਪ੍ਰਤੀ ਸੈਂਪਲ ਬਲੂਟੁੱਥ ਆਡੀਓ ਬਿਟਾਂ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ਬਲੂਟੁੱਥ ਆਡੀਓ ਕੋਡੇਕ\nਚੋਣ ਨੂੰ ਟ੍ਰਿਗਰ ਕਰੋ: ਪ੍ਰਤੀ ਸੈਂਪਲ ਬਿਟਾਂ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"ਬਲੂਟੁੱਥ ਆਡੀਓ ਚੈਨਲ ਮੋਡ"</string>
diff --git a/packages/SettingsLib/res/values-pl/strings.xml b/packages/SettingsLib/res/values-pl/strings.xml
index 69ebc59..7856679 100644
--- a/packages/SettingsLib/res/values-pl/strings.xml
+++ b/packages/SettingsLib/res/values-pl/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Uruchom kodek dźwięku Bluetooth\nWybór"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Dźwięk Bluetooth – współczynnik próbkowania"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Uruchom kodek dźwięku Bluetooth\nWybór: częstotliwość próbkowania"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Elementy wyszarzone nie są obsługiwane przez telefon lub zestaw słuchawkowy"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Dźwięk Bluetooth – liczba bitów na próbkę"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Uruchom kodek dźwięku Bluetooth\nWybór: liczba bitów na próbkę"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Dźwięk Bluetooth – tryb kanału"</string>
diff --git a/packages/SettingsLib/res/values-pt-rBR/strings.xml b/packages/SettingsLib/res/values-pt-rBR/strings.xml
index 62017f1..6a32200 100644
--- a/packages/SettingsLib/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rBR/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Acionar codec de áudio Bluetooth\nSeleção"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Taxa de amostra do áudio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Acionar codec de áudio Bluetooth\nSeleção: taxa de amostra"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Os itens esmaecidos não são compatíveis com o smartphone ou o fone de ouvido"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits por amostra do áudio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Acionar codec de áudio Bluetooth\nSeleção: bits por amostra"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modo de canal de áudio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-pt-rPT/strings.xml b/packages/SettingsLib/res/values-pt-rPT/strings.xml
index 8304768..caf1ba4 100644
--- a/packages/SettingsLib/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsLib/res/values-pt-rPT/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Acionar o codec de áudio Bluetooth\nSeleção"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Taxa de amostragem de áudio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Acionar o codec de áudio Bluetooth\nSeleção: frequência de amostragem"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Se estiver assinalado a cinzento, significa que não é suportado pelo telemóvel ou pelos auscultadores com microfone integrado"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits por amostra de áudio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Acionar o codec de áudio Bluetooth\nSeleção: bits por amostra"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modo de canal áudio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-pt/strings.xml b/packages/SettingsLib/res/values-pt/strings.xml
index 62017f1..6a32200 100644
--- a/packages/SettingsLib/res/values-pt/strings.xml
+++ b/packages/SettingsLib/res/values-pt/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Acionar codec de áudio Bluetooth\nSeleção"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Taxa de amostra do áudio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Acionar codec de áudio Bluetooth\nSeleção: taxa de amostra"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Os itens esmaecidos não são compatíveis com o smartphone ou o fone de ouvido"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits por amostra do áudio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Acionar codec de áudio Bluetooth\nSeleção: bits por amostra"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modo de canal de áudio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-ro/strings.xml b/packages/SettingsLib/res/values-ro/strings.xml
index 50ea4a0..38cd60f 100644
--- a/packages/SettingsLib/res/values-ro/strings.xml
+++ b/packages/SettingsLib/res/values-ro/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Declanșați codecul audio Bluetooth\nSelecție"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Rată de eșantionare audio Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Declanșați codecul audio Bluetooth\nSelecție: rată de eșantionare"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"O opțiune inactivă înseamnă incompatibilitate cu telefonul sau setul căști-microfon"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Biți audio Bluetooth per eșantion"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Declanșați codecul audio Bluetooth\nSelecție: biți per eșantion"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Modul canal audio Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-ru/strings.xml b/packages/SettingsLib/res/values-ru/strings.xml
index 0582a0c..124bf13 100644
--- a/packages/SettingsLib/res/values-ru/strings.xml
+++ b/packages/SettingsLib/res/values-ru/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Запустить аудиокодек для Bluetooth\nВыбор"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Частота дискретизации аудио Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Запустить аудиокодек для Bluetooth\nВыбор: частота дискретизации"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Серым окрашены неподдерживаемые функции"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Бит на выборку аудио Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Запустить аудиокодек для Bluetooth\nВыбор: разрядность"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Режим аудиоканала Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-si/strings.xml b/packages/SettingsLib/res/values-si/strings.xml
index 43a4978..d5fbb6b6 100644
--- a/packages/SettingsLib/res/values-si/strings.xml
+++ b/packages/SettingsLib/res/values-si/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"බ්ලූටූත් ශ්රව්ය කෝඩෙක් ක්රියාරම්භ කරන්න\nතෝරා ගැනීම"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"බ්ලූටූත් ශ්රව්ය නියැදි අනුපාතය"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"බ්ලූටූත් ශ්රව්ය කෝඩෙක් ක්රියාරම්භ කරන්න\nතෝරා ගැනීම: නියැදි අනුපාතය"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"අළු පැහැ ගැන්වී ඇත යන්නෙන් අදහස් කරන්නේ දුරකථනය හෝ හෙඩ්සෙට් එක මගින් සහාය නොදක්වන බවයි"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"නියැදියකට බ්ලූටූත් ශ්රව්ය බිටු"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"බ්ලූටූත් ශ්රව්ය කේතය ක්රියාරම්භ කරන්න\nතෝරා ගැනීම: නියැදි සඳහා බිටු"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"බ්ලූටූත් ශ්රව්ය නාලිකා ප්රකාරය"</string>
diff --git a/packages/SettingsLib/res/values-sk/strings.xml b/packages/SettingsLib/res/values-sk/strings.xml
index 3a3958f..ba13586 100644
--- a/packages/SettingsLib/res/values-sk/strings.xml
+++ b/packages/SettingsLib/res/values-sk/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Spustiť zvukový kodek Bluetooth\nVýber"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth Audio – vzorkovacia frekvencia"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Spustiť zvukový kodek Bluetooth\nVýber: vzorkovacia frekvencia"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Sivé možnosti nie sú podporované telefónom ani náhlavnou súpravou"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth Audio – počet bitov na vzorku"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Spustiť zvukový kodek Bluetooth\nVýber: počet bitov na vzorku"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth Audio – režim kanála"</string>
diff --git a/packages/SettingsLib/res/values-sl/strings.xml b/packages/SettingsLib/res/values-sl/strings.xml
index 068f221..90d7829 100644
--- a/packages/SettingsLib/res/values-sl/strings.xml
+++ b/packages/SettingsLib/res/values-sl/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Sproži zvočni kodek za Bluetooth\nIzbor"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Hitrost vzorčenja zvoka prek Bluetootha"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Sproži zvočni kodek za Bluetooth\nIzbor: hitrost vzorčenja"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Če je možnost zatemnjena, to pomeni, da je telefon ali slušalke z mikrofonom ne podpirajo"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bitov na vzorec za zvok prek Bluetootha"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Sproži zvočni kodek za Bluetooth\nIzbor: število bitov na vzorec"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Način zvočnega kanala prek Bluetootha"</string>
diff --git a/packages/SettingsLib/res/values-sq/strings.xml b/packages/SettingsLib/res/values-sq/strings.xml
index 54d4637..15b2ed3 100644
--- a/packages/SettingsLib/res/values-sq/strings.xml
+++ b/packages/SettingsLib/res/values-sq/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Aktivizo kodekun e audios me Bluetooth\nZgjedhja"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Shpejtësia e shembullit të Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Aktivizo kodekun e audios me Bluetooth\nZgjedhja: Shpejtësia e shembullit"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Çaktivizimi do të thotë se nuk mbështetet nga telefoni ose kufjet"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bite për shembull Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Aktivizo kodekun e audios me Bluetooth\nZgjedhja: Bite për shembull"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Regjimi i kanalit Bluetooth Audio"</string>
diff --git a/packages/SettingsLib/res/values-sr/strings.xml b/packages/SettingsLib/res/values-sr/strings.xml
index ab081ae..381edef 100644
--- a/packages/SettingsLib/res/values-sr/strings.xml
+++ b/packages/SettingsLib/res/values-sr/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Изаберите Bluetooth аудио кодек\n"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Брзина узорковања за Bluetooth аудио"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Изаберите Bluetooth аудио кодек:\n брзина узорковања"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Ако је нека ставка засивљена, то значи да је телефон или слушалице не подржавају"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Битова по узорку за Bluetooth аудио"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Изаберите Bluetooth аудио кодек:\n број битова по узорку"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Режим канала за Bluetooth аудио"</string>
diff --git a/packages/SettingsLib/res/values-sv/strings.xml b/packages/SettingsLib/res/values-sv/strings.xml
index cab971f..65fbe20 100644
--- a/packages/SettingsLib/res/values-sv/strings.xml
+++ b/packages/SettingsLib/res/values-sv/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Aktivera ljudkodek för Bluetooth\nVal"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Samplingsfrekvens för Bluetooth-ljud"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Aktivera ljudkodek för Bluetooth\nVal: samplingsfrekvens"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"En nedtonad kodek stöds inte av telefonen eller headsetet"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Antar bitar per sampling för Bluetooth-ljud"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Aktivera ljudkodek för Bluetooth\nVal: bitar per sampling"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Kanalläge för Bluetooth-ljud"</string>
diff --git a/packages/SettingsLib/res/values-sw/strings.xml b/packages/SettingsLib/res/values-sw/strings.xml
index df71b82..e6ccc65 100644
--- a/packages/SettingsLib/res/values-sw/strings.xml
+++ b/packages/SettingsLib/res/values-sw/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Weka Kodeki ya Sauti ya Bluetooth\nUteuzi"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Kiwango cha Sampuli ya Sauti ya Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Weka Kodeki ya Sauti ya Bluetooth\nUteuzi: Kasi ya Sampuli"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Kipengele cha Haiwezi kutumiwa kina maana kuwa hakitumiki kwenye simu au vifaa vya sauti"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Biti za Sauti ya Bluetooth kwa Kila Sampuli"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Weka Kodeki ya Sauti ya Bluetooth\nUteuzi: Biti Kwa Kila Sampuli"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Hali ya Mkondo wa Sauti ya Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-ta/strings.xml b/packages/SettingsLib/res/values-ta/strings.xml
index 084ec16..f0f4bef 100644
--- a/packages/SettingsLib/res/values-ta/strings.xml
+++ b/packages/SettingsLib/res/values-ta/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"புளூடூத் ஆடியோ கோடெக்கைத் தொடங்கு\nதேர்வு"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"புளூடூத் ஆடியோ சாம்பிள் ரேட்"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"புளூடூத் ஆடியோ கோடெக்கைத் தொடங்கு\nதேர்வு: சாம்பிள் ரேட்"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"கிரே-அவுட் என்றால் மொபைலாலோ ஹெட்செட்டாலோ ஆதரிக்கப்படவில்லை என்று அர்த்தம்"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"புளூடூத் ஆடியோ பிட்கள்/சாம்பிள்"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"புளூடூத் ஆடியோ கோடெக்கைத் தொடங்கு\nதேர்வு: பிட்கள் / சாம்பிள்"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"புளூடூத் ஆடியோ சேனல் பயன்முறை"</string>
diff --git a/packages/SettingsLib/res/values-te/strings.xml b/packages/SettingsLib/res/values-te/strings.xml
index cbcaf1a..cf5097e 100644
--- a/packages/SettingsLib/res/values-te/strings.xml
+++ b/packages/SettingsLib/res/values-te/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"బ్లూటూత్ ఆడియో కోడెక్ని సక్రియం చేయండి\nఎంపిక"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"బ్లూటూత్ ఆడియో నమూనా రేట్"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"బ్లూటూత్ ఆడియో కోడెక్ని సక్రియం చేయండి\nఎంపిక: నమూనా రేట్"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"గ్రే-అవుట్ అంటే ఫోన్ లేదా హెడ్సెట్ మద్దతు లేదు అని అర్ధం"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"ఒక్కో నమూనాకు బ్లూటూత్ ఆడియో బిట్లు"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"బ్లూటూత్ ఆడియో కోడెక్ని సక్రియం చేయండి\nఎంపిక: ఒక్కో నమూనాలో బిట్లు"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"బ్లూటూత్ ఆడియో ఛానెల్ మోడ్"</string>
diff --git a/packages/SettingsLib/res/values-th/strings.xml b/packages/SettingsLib/res/values-th/strings.xml
index fa8caa1..145e161 100644
--- a/packages/SettingsLib/res/values-th/strings.xml
+++ b/packages/SettingsLib/res/values-th/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"ทริกเกอร์การเลือกตัวแปลงรหัส\nเสียงบลูทูธ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"อัตราตัวอย่างเสียงบลูทูธ"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"ทริกเกอร์การเลือกตัวแปลงรหัส\nเสียงบลูทูธ: อัตราตัวอย่าง"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"เป็นสีเทาหมายความว่าโทรศัพท์หรือชุดหูฟังไม่รองรับ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"บิตต่อตัวอย่างของเสียงบลูทูธ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"ทริกเกอร์การเลือกตัวแปลงรหัส\nเสียงบลูทูธ: บิตต่อตัวอย่าง"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"โหมดช่องสัญญาณเสียงบลูทูธ"</string>
diff --git a/packages/SettingsLib/res/values-tl/strings.xml b/packages/SettingsLib/res/values-tl/strings.xml
index 21fe58c..e190773 100644
--- a/packages/SettingsLib/res/values-tl/strings.xml
+++ b/packages/SettingsLib/res/values-tl/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"I-trigger ang Pagpili sa Audio Codec ng\nBluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Sample na Rate ng Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"I-trigger ang Pagpili sa Audio Codec ng\nBluetooth: Rate ng Sample"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Ang ibig sabihin ng na-gray out ay hindi sinusuportahan ng telepono o headset"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bits Per Sample ng Bluetooth Audio"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"I-trigger ang Pagpili sa Audio Codec ng\nBluetooth: Bits Per Sample"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Channel Mode ng Bluetooth Audio"</string>
diff --git a/packages/SettingsLib/res/values-tr/strings.xml b/packages/SettingsLib/res/values-tr/strings.xml
index 4e7f38d..dc11e80 100644
--- a/packages/SettingsLib/res/values-tr/strings.xml
+++ b/packages/SettingsLib/res/values-tr/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth Ses Codec\'i Tetikleme\nSeçimi"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth Ses Örnek Hızı"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth Ses Codec\'i Tetikleme\nSeçimi: Örnek Hızı"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Devre dışı bırakılmış olması telefon veya mikrofonlu kulaklık tarafından desteklenmediği anlamına gelir."</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth Ses Örnek Başına Bit Sayısı"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth Ses Codec\'i Tetikleme\nSeçimi: Örnek Başına Bit Sayısı"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth Ses Kanalı Modu"</string>
diff --git a/packages/SettingsLib/res/values-uk/strings.xml b/packages/SettingsLib/res/values-uk/strings.xml
index 9807417..f8a88b83 100644
--- a/packages/SettingsLib/res/values-uk/strings.xml
+++ b/packages/SettingsLib/res/values-uk/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Активувати кодек для аудіо Bluetooth\nВибір"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Частота вибірки для аудіо Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Активувати кодек для аудіо Bluetooth\nВибір: частота зразка"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Затіненння означає, що телефон або гарнітура не підтримуються"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Кількість бітів на зразок для аудіо Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Активувати кодек для аудіо Bluetooth\nВибір: біти на зразок"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Режим каналу для аудіо Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-ur/strings.xml b/packages/SettingsLib/res/values-ur/strings.xml
index e17b0b0..246b6a2 100644
--- a/packages/SettingsLib/res/values-ur/strings.xml
+++ b/packages/SettingsLib/res/values-ur/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"بلوٹوتھ آڈیو کوڈیک کو ٹریگر کریں\nانتخاب"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"بلوٹوتھ آڈیو کے نمونے کی شرح"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"بلوٹوتھ آڈیو کوڈیک کو ٹریگر کریں\nانتخاب: نمونے کی شرح"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"گرے آؤٹ کا مطلب ہے فون یا ہیڈ سیٹ کے ذریعہ تعاون یافتہ نہیں"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"بلوٹوتھ آڈیو بٹس فی نمونہ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"بلوٹوتھ آڈیو کوڈیک کو ٹریگر کریں\nانتخاب: بِٹس فی نمونہ"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"بلوٹوتھ آڈیو چینل موڈ"</string>
diff --git a/packages/SettingsLib/res/values-uz/strings.xml b/packages/SettingsLib/res/values-uz/strings.xml
index ea51eba..87cc2a0 100644
--- a/packages/SettingsLib/res/values-uz/strings.xml
+++ b/packages/SettingsLib/res/values-uz/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Bluetooth orqali uzatish uchun audiokodek\nTanlash"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Bluetooth audio namunasi chastotasi"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Bluetooth orqali uzatish uchun audiokodek\nTanlash: namuna chastotasi"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Parametr yoqilmasa, garnitura yoki telefonda ishlamaydi"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Bluetooth audio namunasidagi bitlar soni"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Bluetooth orqali uzatish uchun audiokodek\nTanlash: namunadagi bitlar soni"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Bluetooth audio kanali rejimi"</string>
diff --git a/packages/SettingsLib/res/values-vi/strings.xml b/packages/SettingsLib/res/values-vi/strings.xml
index 0b71a8c..0a9726a 100644
--- a/packages/SettingsLib/res/values-vi/strings.xml
+++ b/packages/SettingsLib/res/values-vi/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Kích hoạt chế độ chọn codec\nâm thanh Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Tốc độ lấy mẫu âm thanh Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Kích hoạt chế độ chọn codec\nâm thanh Bluetooth: Tần số lấy mẫu"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Trạng thái chuyển sang màu xám có nghĩa là điện thoại hoặc tai nghe không hỗ trợ"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Số bit âm thanh Bluetooth mỗi mẫu"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Kích hoạt chế độ chọn codec\nâm thanh Bluetooth: Số bit trên mỗi mẫu"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Chế độ kênh âm thanh Bluetooth"</string>
diff --git a/packages/SettingsLib/res/values-zh-rCN/strings.xml b/packages/SettingsLib/res/values-zh-rCN/strings.xml
index 1805694..514e677 100644
--- a/packages/SettingsLib/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rCN/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"触发蓝牙音频编解码器\n选择"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"蓝牙音频采样率"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"触发蓝牙音频编解码器\n选择:采样率"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"灰显意味着手机或耳机不支持该功能"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"蓝牙音频每样本位数"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"触发蓝牙音频编解码器\n选择:每样本位数"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"蓝牙音频声道模式"</string>
diff --git a/packages/SettingsLib/res/values-zh-rHK/strings.xml b/packages/SettingsLib/res/values-zh-rHK/strings.xml
index 1d217b5..261e8d02 100644
--- a/packages/SettingsLib/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rHK/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"觸發藍牙音訊編解碼器\n選項"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"藍牙音訊取樣率"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"觸發藍牙音訊編解碼器\n選項:取樣率"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"以灰色顯示代表手機或耳機不支援此音訊編解碼器"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"藍牙音訊每個樣本位元數"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"觸發藍牙音訊編解碼器\n選項:每個樣本位元數"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"藍牙音訊聲道模式"</string>
diff --git a/packages/SettingsLib/res/values-zh-rTW/strings.xml b/packages/SettingsLib/res/values-zh-rTW/strings.xml
index ee68665..d0ba3d0 100644
--- a/packages/SettingsLib/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsLib/res/values-zh-rTW/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"觸發藍牙音訊轉碼器\n選項"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"藍牙音訊取樣率"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"觸發藍牙音訊轉碼器\n選項:取樣率"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"如果顯示為灰色,表示手機或耳機不支援這項功能"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"藍牙音訊每單位樣本位元數"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"觸發藍牙音訊轉碼器\n選項:每單位樣本位元數"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"藍牙音訊聲道模式"</string>
diff --git a/packages/SettingsLib/res/values-zu/strings.xml b/packages/SettingsLib/res/values-zu/strings.xml
index 820aa77..f8cc50b 100644
--- a/packages/SettingsLib/res/values-zu/strings.xml
+++ b/packages/SettingsLib/res/values-zu/strings.xml
@@ -233,6 +233,7 @@
<string name="bluetooth_select_a2dp_codec_type_dialog_title" msgid="7510542404227225545">"Qalisa i-codec ye-bluetooth yomsindo\nUkukhethwa"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate" msgid="1638623076480928191">"Isilinganiso sesampula yomsindo we-Bluetooth"</string>
<string name="bluetooth_select_a2dp_codec_sample_rate_dialog_title" msgid="5876305103137067798">"Qalisa i-codec ye-bluetooth yomsindo\nUkukhethwa: Isampuli yesilinganiso"</string>
+ <string name="bluetooth_select_a2dp_codec_type_help_info" msgid="8647200416514412338">"Okwenziwa mpunga ngokuphelele kusho ukuthi akusekelwe ifoni noma ihedisethi"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample" msgid="6253965294594390806">"Ama-Bits omsindo we-Bluetooth ngesampula ngayinye"</string>
<string name="bluetooth_select_a2dp_codec_bits_per_sample_dialog_title" msgid="4898693684282596143">"Qalisa i-codec ye-bluetooth yomsindo\nUkukhethwa: Amabhithi ngesampuli ngayinye"</string>
<string name="bluetooth_select_a2dp_codec_channel_mode" msgid="364277285688014427">"Imodi yesiteshi somsindo we-Bluetooth"</string>
diff --git a/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java b/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java
index 69487d5..274696b 100644
--- a/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java
+++ b/packages/SettingsLib/src/com/android/settingslib/drawable/UserIconDrawable.java
@@ -39,7 +39,6 @@
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
-import android.os.UserManager;
import com.android.settingslib.R;
@@ -177,8 +176,8 @@
boolean isManaged = context.getSystemService(DevicePolicyManager.class)
.getProfileOwnerAsUser(userId) != null;
if (isManaged) {
- badge = getDrawableForDisplayDensity(context,
- context.getSystemService(UserManager.class).getUserBadgeResId(userId));
+ badge = getDrawableForDisplayDensity(
+ context, com.android.internal.R.drawable.ic_corp_badge_case);
}
}
return setBadge(badge);
diff --git a/packages/SettingsProvider/res/values-af/strings.xml b/packages/SettingsProvider/res/values-af/strings.xml
index 79a7f2d..2c45484 100644
--- a/packages/SettingsProvider/res/values-af/strings.xml
+++ b/packages/SettingsProvider/res/values-af/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Instellingsberging"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-am/strings.xml b/packages/SettingsProvider/res/values-am/strings.xml
index 6380b99..0630560 100644
--- a/packages/SettingsProvider/res/values-am/strings.xml
+++ b/packages/SettingsProvider/res/values-am/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"የቅንብሮች ማከማቻ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ar/strings.xml b/packages/SettingsProvider/res/values-ar/strings.xml
index ab1b808..19306a6 100644
--- a/packages/SettingsProvider/res/values-ar/strings.xml
+++ b/packages/SettingsProvider/res/values-ar/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"تخزين الإعدادات"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-as/strings.xml b/packages/SettingsProvider/res/values-as/strings.xml
index 233253e..13b90d6 100644
--- a/packages/SettingsProvider/res/values-as/strings.xml
+++ b/packages/SettingsProvider/res/values-as/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ছেটিংছসমূহৰ সঞ্চয়াগাৰ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-az/strings.xml b/packages/SettingsProvider/res/values-az/strings.xml
index e99e99b..4737a1e 100644
--- a/packages/SettingsProvider/res/values-az/strings.xml
+++ b/packages/SettingsProvider/res/values-az/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Ayarlar Deposu"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-b+sr+Latn/strings.xml b/packages/SettingsProvider/res/values-b+sr+Latn/strings.xml
index 337b18e..032dbc5 100644
--- a/packages/SettingsProvider/res/values-b+sr+Latn/strings.xml
+++ b/packages/SettingsProvider/res/values-b+sr+Latn/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Podešavanja skladišta"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-be/strings.xml b/packages/SettingsProvider/res/values-be/strings.xml
index 3a8557c..60bdb2d 100644
--- a/packages/SettingsProvider/res/values-be/strings.xml
+++ b/packages/SettingsProvider/res/values-be/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Сховішча налад"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-bg/strings.xml b/packages/SettingsProvider/res/values-bg/strings.xml
index f3d21d8..c3a994b 100644
--- a/packages/SettingsProvider/res/values-bg/strings.xml
+++ b/packages/SettingsProvider/res/values-bg/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Настройки за хранилище"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-bn/strings.xml b/packages/SettingsProvider/res/values-bn/strings.xml
index 7e72dfb..71ee99b 100644
--- a/packages/SettingsProvider/res/values-bn/strings.xml
+++ b/packages/SettingsProvider/res/values-bn/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"সেটিংস স্টোরেজ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-bs/strings.xml b/packages/SettingsProvider/res/values-bs/strings.xml
index 464a29f..09d4c68 100644
--- a/packages/SettingsProvider/res/values-bs/strings.xml
+++ b/packages/SettingsProvider/res/values-bs/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Postavke za pohranu podataka"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ca/strings.xml b/packages/SettingsProvider/res/values-ca/strings.xml
index 9d6ac7a..ee6b51e 100644
--- a/packages/SettingsProvider/res/values-ca/strings.xml
+++ b/packages/SettingsProvider/res/values-ca/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Configuració de l\'emmagatzematge"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-cs/strings.xml b/packages/SettingsProvider/res/values-cs/strings.xml
index a28ffa1..f134e05 100644
--- a/packages/SettingsProvider/res/values-cs/strings.xml
+++ b/packages/SettingsProvider/res/values-cs/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Paměť pro nastavení"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-da/strings.xml b/packages/SettingsProvider/res/values-da/strings.xml
index ed450d5..99988a5 100644
--- a/packages/SettingsProvider/res/values-da/strings.xml
+++ b/packages/SettingsProvider/res/values-da/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Lagring af indstillinger"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-de/strings.xml b/packages/SettingsProvider/res/values-de/strings.xml
index 6effbae..ddcabaa 100644
--- a/packages/SettingsProvider/res/values-de/strings.xml
+++ b/packages/SettingsProvider/res/values-de/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Einstellungsspeicher"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-el/strings.xml b/packages/SettingsProvider/res/values-el/strings.xml
index 5bd1fa6..924fab5 100644
--- a/packages/SettingsProvider/res/values-el/strings.xml
+++ b/packages/SettingsProvider/res/values-el/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Αποθηκευτικός χώρος ρυθμίσεων"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rAU/strings.xml b/packages/SettingsProvider/res/values-en-rAU/strings.xml
index c19fdd7..05cd54e 100644
--- a/packages/SettingsProvider/res/values-en-rAU/strings.xml
+++ b/packages/SettingsProvider/res/values-en-rAU/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Settings Storage"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rCA/strings.xml b/packages/SettingsProvider/res/values-en-rCA/strings.xml
index c19fdd7..05cd54e 100644
--- a/packages/SettingsProvider/res/values-en-rCA/strings.xml
+++ b/packages/SettingsProvider/res/values-en-rCA/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Settings Storage"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rGB/strings.xml b/packages/SettingsProvider/res/values-en-rGB/strings.xml
index c19fdd7..05cd54e 100644
--- a/packages/SettingsProvider/res/values-en-rGB/strings.xml
+++ b/packages/SettingsProvider/res/values-en-rGB/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Settings Storage"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rIN/strings.xml b/packages/SettingsProvider/res/values-en-rIN/strings.xml
index c19fdd7..05cd54e 100644
--- a/packages/SettingsProvider/res/values-en-rIN/strings.xml
+++ b/packages/SettingsProvider/res/values-en-rIN/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Settings Storage"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-en-rXC/strings.xml b/packages/SettingsProvider/res/values-en-rXC/strings.xml
index 9b18e2b..fbc348b 100644
--- a/packages/SettingsProvider/res/values-en-rXC/strings.xml
+++ b/packages/SettingsProvider/res/values-en-rXC/strings.xml
@@ -20,4 +20,7 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Settings Storage"</string>
+ <string name="wifi_softap_config_change" msgid="5338670993556993667">"Changes to your hotspot settings"</string>
+ <string name="wifi_softap_config_change_summary" msgid="7600005249167787750">"Your hotspot band has changed."</string>
+ <string name="wifi_softap_config_change_detailed" msgid="2504664754843959730">"This device doesn’t support your preference for 5GHz only. Instead, this device will use the 5GHz band when available."</string>
</resources>
diff --git a/packages/SettingsProvider/res/values-es-rUS/strings.xml b/packages/SettingsProvider/res/values-es-rUS/strings.xml
index 7a15d8b..d5e6da9 100644
--- a/packages/SettingsProvider/res/values-es-rUS/strings.xml
+++ b/packages/SettingsProvider/res/values-es-rUS/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Almacenamiento de configuración"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-es/strings.xml b/packages/SettingsProvider/res/values-es/strings.xml
index 7a15d8b..d5e6da9 100644
--- a/packages/SettingsProvider/res/values-es/strings.xml
+++ b/packages/SettingsProvider/res/values-es/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Almacenamiento de configuración"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-et/strings.xml b/packages/SettingsProvider/res/values-et/strings.xml
index 30b7293..a3e4db6 100644
--- a/packages/SettingsProvider/res/values-et/strings.xml
+++ b/packages/SettingsProvider/res/values-et/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Seadete talletusruum"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-eu/strings.xml b/packages/SettingsProvider/res/values-eu/strings.xml
index 6780ae0..8d410de1 100644
--- a/packages/SettingsProvider/res/values-eu/strings.xml
+++ b/packages/SettingsProvider/res/values-eu/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Ezarpenen biltegia"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-fa/strings.xml b/packages/SettingsProvider/res/values-fa/strings.xml
index 97fe0ab..ed9d168 100644
--- a/packages/SettingsProvider/res/values-fa/strings.xml
+++ b/packages/SettingsProvider/res/values-fa/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"تنظیم محل ذخیره"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-fi/strings.xml b/packages/SettingsProvider/res/values-fi/strings.xml
index 83c7f66..9ff2c41 100644
--- a/packages/SettingsProvider/res/values-fi/strings.xml
+++ b/packages/SettingsProvider/res/values-fi/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Asetuksien tallennus"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-fr-rCA/strings.xml b/packages/SettingsProvider/res/values-fr-rCA/strings.xml
index c90eb09..fdfdb1d 100644
--- a/packages/SettingsProvider/res/values-fr-rCA/strings.xml
+++ b/packages/SettingsProvider/res/values-fr-rCA/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Stockage des paramètres"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-fr/strings.xml b/packages/SettingsProvider/res/values-fr/strings.xml
index c90eb09..fdfdb1d 100644
--- a/packages/SettingsProvider/res/values-fr/strings.xml
+++ b/packages/SettingsProvider/res/values-fr/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Stockage des paramètres"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-gl/strings.xml b/packages/SettingsProvider/res/values-gl/strings.xml
index 80ef310..7b1599e 100644
--- a/packages/SettingsProvider/res/values-gl/strings.xml
+++ b/packages/SettingsProvider/res/values-gl/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Almacenamento da configuración"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-gu/strings.xml b/packages/SettingsProvider/res/values-gu/strings.xml
index 7241974..00246f9 100644
--- a/packages/SettingsProvider/res/values-gu/strings.xml
+++ b/packages/SettingsProvider/res/values-gu/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"સેટિંગ્સ સંગ્રહ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-hi/strings.xml b/packages/SettingsProvider/res/values-hi/strings.xml
index da8193f..35ed78f 100644
--- a/packages/SettingsProvider/res/values-hi/strings.xml
+++ b/packages/SettingsProvider/res/values-hi/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"सेटिंग मेमोरी"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-hr/strings.xml b/packages/SettingsProvider/res/values-hr/strings.xml
index 87f1270..070d061 100644
--- a/packages/SettingsProvider/res/values-hr/strings.xml
+++ b/packages/SettingsProvider/res/values-hr/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Postavke pohrane"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-hu/strings.xml b/packages/SettingsProvider/res/values-hu/strings.xml
index dab1b17..97124ae 100644
--- a/packages/SettingsProvider/res/values-hu/strings.xml
+++ b/packages/SettingsProvider/res/values-hu/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Beállítástároló"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-hy/strings.xml b/packages/SettingsProvider/res/values-hy/strings.xml
index b1f1afb..d494012 100644
--- a/packages/SettingsProvider/res/values-hy/strings.xml
+++ b/packages/SettingsProvider/res/values-hy/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Կարգավորումների պահուստ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-in/strings.xml b/packages/SettingsProvider/res/values-in/strings.xml
index bed20eb..4ec8f84 100644
--- a/packages/SettingsProvider/res/values-in/strings.xml
+++ b/packages/SettingsProvider/res/values-in/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Setelan Penyimpanan"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-is/strings.xml b/packages/SettingsProvider/res/values-is/strings.xml
index c4e2aa6..d75abae 100644
--- a/packages/SettingsProvider/res/values-is/strings.xml
+++ b/packages/SettingsProvider/res/values-is/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Stillingageymsla"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-it/strings.xml b/packages/SettingsProvider/res/values-it/strings.xml
index ba1431d..a1e3901 100644
--- a/packages/SettingsProvider/res/values-it/strings.xml
+++ b/packages/SettingsProvider/res/values-it/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Memoria impostazioni"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-iw/strings.xml b/packages/SettingsProvider/res/values-iw/strings.xml
index ad2eaf4..c14f776 100644
--- a/packages/SettingsProvider/res/values-iw/strings.xml
+++ b/packages/SettingsProvider/res/values-iw/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"אחסון הגדרות"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ja/strings.xml b/packages/SettingsProvider/res/values-ja/strings.xml
index d222ca9..b11ec3b 100644
--- a/packages/SettingsProvider/res/values-ja/strings.xml
+++ b/packages/SettingsProvider/res/values-ja/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ストレージの設定"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ka/strings.xml b/packages/SettingsProvider/res/values-ka/strings.xml
index 691a2e9..d08e71e 100644
--- a/packages/SettingsProvider/res/values-ka/strings.xml
+++ b/packages/SettingsProvider/res/values-ka/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"პარამეტრების საცავი"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-kk/strings.xml b/packages/SettingsProvider/res/values-kk/strings.xml
index 8cf8af2..c07264c 100644
--- a/packages/SettingsProvider/res/values-kk/strings.xml
+++ b/packages/SettingsProvider/res/values-kk/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Параметрлер жады"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-km/strings.xml b/packages/SettingsProvider/res/values-km/strings.xml
index 7be62427..c880ead 100644
--- a/packages/SettingsProvider/res/values-km/strings.xml
+++ b/packages/SettingsProvider/res/values-km/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"កំណត់ការផ្ទុក"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-kn/strings.xml b/packages/SettingsProvider/res/values-kn/strings.xml
index ca427ec..d823323 100644
--- a/packages/SettingsProvider/res/values-kn/strings.xml
+++ b/packages/SettingsProvider/res/values-kn/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ಸೆಟ್ಟಿಂಗ್ಗಳ ಸಂಗ್ರಹಣೆ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ko/strings.xml b/packages/SettingsProvider/res/values-ko/strings.xml
index 8e0cc75..ab8fb2b 100644
--- a/packages/SettingsProvider/res/values-ko/strings.xml
+++ b/packages/SettingsProvider/res/values-ko/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"설정 저장소"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ky/strings.xml b/packages/SettingsProvider/res/values-ky/strings.xml
index 2b3cf61..566c481 100644
--- a/packages/SettingsProvider/res/values-ky/strings.xml
+++ b/packages/SettingsProvider/res/values-ky/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Жөндөөлөрдү сактоо"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-lo/strings.xml b/packages/SettingsProvider/res/values-lo/strings.xml
index 4e57936..1aa5fe9 100644
--- a/packages/SettingsProvider/res/values-lo/strings.xml
+++ b/packages/SettingsProvider/res/values-lo/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ບ່ອນເກັບຂໍ້ມູນການຕັ້ງຄ່າ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-lt/strings.xml b/packages/SettingsProvider/res/values-lt/strings.xml
index 5b4432f..47cd6b4 100644
--- a/packages/SettingsProvider/res/values-lt/strings.xml
+++ b/packages/SettingsProvider/res/values-lt/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Nustatymų saugykla"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-lv/strings.xml b/packages/SettingsProvider/res/values-lv/strings.xml
index c83580c..d221d46 100644
--- a/packages/SettingsProvider/res/values-lv/strings.xml
+++ b/packages/SettingsProvider/res/values-lv/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Iestatījumu krātuve"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-mk/strings.xml b/packages/SettingsProvider/res/values-mk/strings.xml
index f281bae..dc74c4a 100644
--- a/packages/SettingsProvider/res/values-mk/strings.xml
+++ b/packages/SettingsProvider/res/values-mk/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Поставки за меморија"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ml/strings.xml b/packages/SettingsProvider/res/values-ml/strings.xml
index 43a88e1..a11e236 100644
--- a/packages/SettingsProvider/res/values-ml/strings.xml
+++ b/packages/SettingsProvider/res/values-ml/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"സംഭരണ ക്രമീകരണം"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-mn/strings.xml b/packages/SettingsProvider/res/values-mn/strings.xml
index 9452145..f6437c75 100644
--- a/packages/SettingsProvider/res/values-mn/strings.xml
+++ b/packages/SettingsProvider/res/values-mn/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Тохиргооны Сан"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-mr/strings.xml b/packages/SettingsProvider/res/values-mr/strings.xml
index 65a876f..7888488 100644
--- a/packages/SettingsProvider/res/values-mr/strings.xml
+++ b/packages/SettingsProvider/res/values-mr/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"सेटिंग्ज संचयन"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ms/strings.xml b/packages/SettingsProvider/res/values-ms/strings.xml
index 9108b07..bcde71c 100644
--- a/packages/SettingsProvider/res/values-ms/strings.xml
+++ b/packages/SettingsProvider/res/values-ms/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Storan Tetapan"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-my/strings.xml b/packages/SettingsProvider/res/values-my/strings.xml
index 0c5e840..b2e670e 100644
--- a/packages/SettingsProvider/res/values-my/strings.xml
+++ b/packages/SettingsProvider/res/values-my/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"သိုလှောင်မှုဆက်တင်များ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-nb/strings.xml b/packages/SettingsProvider/res/values-nb/strings.xml
index ad18f94..5c60ad7 100644
--- a/packages/SettingsProvider/res/values-nb/strings.xml
+++ b/packages/SettingsProvider/res/values-nb/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Lagring av innstillinger"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ne/strings.xml b/packages/SettingsProvider/res/values-ne/strings.xml
index af6ef62..8c4f8c8 100644
--- a/packages/SettingsProvider/res/values-ne/strings.xml
+++ b/packages/SettingsProvider/res/values-ne/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"सेटिङहरू भण्डारण"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-nl/strings.xml b/packages/SettingsProvider/res/values-nl/strings.xml
index 010fdb5..7ad4588 100644
--- a/packages/SettingsProvider/res/values-nl/strings.xml
+++ b/packages/SettingsProvider/res/values-nl/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Opslagruimte voor instellingen"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-or/strings.xml b/packages/SettingsProvider/res/values-or/strings.xml
index 04f68c8..1837219 100644
--- a/packages/SettingsProvider/res/values-or/strings.xml
+++ b/packages/SettingsProvider/res/values-or/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ସେଟିଙ୍ଗ ଷ୍ଟୋରେଜ୍"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-pa/strings.xml b/packages/SettingsProvider/res/values-pa/strings.xml
index 1813bec..2961435 100644
--- a/packages/SettingsProvider/res/values-pa/strings.xml
+++ b/packages/SettingsProvider/res/values-pa/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ਸੈਟਿੰਗਾਂ ਸਟੋਰੇਜ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-pl/strings.xml b/packages/SettingsProvider/res/values-pl/strings.xml
index 9f81e63..9963aee 100644
--- a/packages/SettingsProvider/res/values-pl/strings.xml
+++ b/packages/SettingsProvider/res/values-pl/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Pamięć ustawień"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-pt-rBR/strings.xml b/packages/SettingsProvider/res/values-pt-rBR/strings.xml
index ade1746..e25e82e 100644
--- a/packages/SettingsProvider/res/values-pt-rBR/strings.xml
+++ b/packages/SettingsProvider/res/values-pt-rBR/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Armazenamento de configurações"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-pt-rPT/strings.xml b/packages/SettingsProvider/res/values-pt-rPT/strings.xml
index c7dc9e6..3b95a31 100644
--- a/packages/SettingsProvider/res/values-pt-rPT/strings.xml
+++ b/packages/SettingsProvider/res/values-pt-rPT/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Armazenamento de definições"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-pt/strings.xml b/packages/SettingsProvider/res/values-pt/strings.xml
index ade1746..e25e82e 100644
--- a/packages/SettingsProvider/res/values-pt/strings.xml
+++ b/packages/SettingsProvider/res/values-pt/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Armazenamento de configurações"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ro/strings.xml b/packages/SettingsProvider/res/values-ro/strings.xml
index 53e9429..5a5ac6d 100644
--- a/packages/SettingsProvider/res/values-ro/strings.xml
+++ b/packages/SettingsProvider/res/values-ro/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Stocare setări"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ru/strings.xml b/packages/SettingsProvider/res/values-ru/strings.xml
index 4c15984..15ca313 100644
--- a/packages/SettingsProvider/res/values-ru/strings.xml
+++ b/packages/SettingsProvider/res/values-ru/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Хранилище настроек"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-si/strings.xml b/packages/SettingsProvider/res/values-si/strings.xml
index 24ef798..feff43c 100644
--- a/packages/SettingsProvider/res/values-si/strings.xml
+++ b/packages/SettingsProvider/res/values-si/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"සැකසීම් ගබඩාව"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-sk/strings.xml b/packages/SettingsProvider/res/values-sk/strings.xml
index 955c834..1207a94 100644
--- a/packages/SettingsProvider/res/values-sk/strings.xml
+++ b/packages/SettingsProvider/res/values-sk/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Ukladací priestor nastavení"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-sl/strings.xml b/packages/SettingsProvider/res/values-sl/strings.xml
index 3d7768d..28a9937 100644
--- a/packages/SettingsProvider/res/values-sl/strings.xml
+++ b/packages/SettingsProvider/res/values-sl/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Shramba nastavitev"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-sq/strings.xml b/packages/SettingsProvider/res/values-sq/strings.xml
index a8e66d5..977fe02 100644
--- a/packages/SettingsProvider/res/values-sq/strings.xml
+++ b/packages/SettingsProvider/res/values-sq/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Hapësira ruajtëse e \"Cilësimeve\""</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-sr/strings.xml b/packages/SettingsProvider/res/values-sr/strings.xml
index 7082761..74b9dde 100644
--- a/packages/SettingsProvider/res/values-sr/strings.xml
+++ b/packages/SettingsProvider/res/values-sr/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Подешавања складишта"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-sv/strings.xml b/packages/SettingsProvider/res/values-sv/strings.xml
index b6de084..1444626 100644
--- a/packages/SettingsProvider/res/values-sv/strings.xml
+++ b/packages/SettingsProvider/res/values-sv/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Lagring av inställningar"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-sw/strings.xml b/packages/SettingsProvider/res/values-sw/strings.xml
index d17f60b..c244d88 100644
--- a/packages/SettingsProvider/res/values-sw/strings.xml
+++ b/packages/SettingsProvider/res/values-sw/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Hifadhi ya Mipangilio"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ta/strings.xml b/packages/SettingsProvider/res/values-ta/strings.xml
index 7a86878..b26c875 100644
--- a/packages/SettingsProvider/res/values-ta/strings.xml
+++ b/packages/SettingsProvider/res/values-ta/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"அமைப்புகளின் சேமிப்பிடம்"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-te/strings.xml b/packages/SettingsProvider/res/values-te/strings.xml
index e51ba88..2a4971a 100644
--- a/packages/SettingsProvider/res/values-te/strings.xml
+++ b/packages/SettingsProvider/res/values-te/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"సెట్టింగ్ల నిల్వ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-th/strings.xml b/packages/SettingsProvider/res/values-th/strings.xml
index ae8ba6a..db47654 100644
--- a/packages/SettingsProvider/res/values-th/strings.xml
+++ b/packages/SettingsProvider/res/values-th/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ที่เก็บข้อมูลการตั้งค่า"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-tl/strings.xml b/packages/SettingsProvider/res/values-tl/strings.xml
index 0fe535e..71c6266 100644
--- a/packages/SettingsProvider/res/values-tl/strings.xml
+++ b/packages/SettingsProvider/res/values-tl/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Storage ng Mga Setting"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-tr/strings.xml b/packages/SettingsProvider/res/values-tr/strings.xml
index e99e99b..4737a1e 100644
--- a/packages/SettingsProvider/res/values-tr/strings.xml
+++ b/packages/SettingsProvider/res/values-tr/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Ayarlar Deposu"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-uk/strings.xml b/packages/SettingsProvider/res/values-uk/strings.xml
index 900dd07..2c77c6a61 100644
--- a/packages/SettingsProvider/res/values-uk/strings.xml
+++ b/packages/SettingsProvider/res/values-uk/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Сховище налаштувань"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-ur/strings.xml b/packages/SettingsProvider/res/values-ur/strings.xml
index e79249b..31694e0 100644
--- a/packages/SettingsProvider/res/values-ur/strings.xml
+++ b/packages/SettingsProvider/res/values-ur/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"ترتیبات کا اسٹوریج"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-uz/strings.xml b/packages/SettingsProvider/res/values-uz/strings.xml
index 38f0ce5..86a980e 100644
--- a/packages/SettingsProvider/res/values-uz/strings.xml
+++ b/packages/SettingsProvider/res/values-uz/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Sozlamalar xotirasi"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-vi/strings.xml b/packages/SettingsProvider/res/values-vi/strings.xml
index 015fbfd..6476927 100644
--- a/packages/SettingsProvider/res/values-vi/strings.xml
+++ b/packages/SettingsProvider/res/values-vi/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Lưu trữ bộ nhớ"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-zh-rCN/strings.xml b/packages/SettingsProvider/res/values-zh-rCN/strings.xml
index 11c5d6c..1395912 100644
--- a/packages/SettingsProvider/res/values-zh-rCN/strings.xml
+++ b/packages/SettingsProvider/res/values-zh-rCN/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"设置存储"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-zh-rHK/strings.xml b/packages/SettingsProvider/res/values-zh-rHK/strings.xml
index 977c9b9..2845264 100644
--- a/packages/SettingsProvider/res/values-zh-rHK/strings.xml
+++ b/packages/SettingsProvider/res/values-zh-rHK/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"設定儲存空間"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-zh-rTW/strings.xml b/packages/SettingsProvider/res/values-zh-rTW/strings.xml
index 977c9b9..2845264 100644
--- a/packages/SettingsProvider/res/values-zh-rTW/strings.xml
+++ b/packages/SettingsProvider/res/values-zh-rTW/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"設定儲存空間"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SettingsProvider/res/values-zu/strings.xml b/packages/SettingsProvider/res/values-zu/strings.xml
index cb5a781..8c1d9e0 100644
--- a/packages/SettingsProvider/res/values-zu/strings.xml
+++ b/packages/SettingsProvider/res/values-zu/strings.xml
@@ -20,4 +20,10 @@
<resources xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="app_label" msgid="4567566098528588863">"Izilungiselelo zesitoreji"</string>
+ <!-- no translation found for wifi_softap_config_change (5338670993556993667) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_summary (7600005249167787750) -->
+ <skip />
+ <!-- no translation found for wifi_softap_config_change_detailed (2504664754843959730) -->
+ <skip />
</resources>
diff --git a/packages/SystemUI/res/layout/notif_half_shelf.xml b/packages/SystemUI/res/layout/notif_half_shelf.xml
index 26c8872..d36c1a8 100644
--- a/packages/SystemUI/res/layout/notif_half_shelf.xml
+++ b/packages/SystemUI/res/layout/notif_half_shelf.xml
@@ -46,7 +46,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
- android:orientation="horizontal" >
+ android:orientation="horizontal"
+ android:clickable="true"
+ android:foreground="?android:attr/selectableItemBackground" >
<ImageView
android:id="@+id/icon"
diff --git a/packages/SystemUI/res/layout/notif_half_shelf_row.xml b/packages/SystemUI/res/layout/notif_half_shelf_row.xml
index b95d5e9..c863e02 100644
--- a/packages/SystemUI/res/layout/notif_half_shelf_row.xml
+++ b/packages/SystemUI/res/layout/notif_half_shelf_row.xml
@@ -20,7 +20,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="8dp"
- android:orientation="horizontal" >
+ android:clickable="true"
+ android:orientation="horizontal"
+ android:foreground="?android:attr/selectableItemBackground" >
<!-- This is where an icon would go *if we wanted one* **wink** -->
<Space
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java
index 7fb5207..ff34be0 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/QSCustomizer.java
@@ -90,7 +90,8 @@
public QSCustomizer(Context context, AttributeSet attrs,
LightBarController lightBarController,
KeyguardStateController keyguardStateController,
- ScreenLifecycle screenLifecycle) {
+ ScreenLifecycle screenLifecycle,
+ TileQueryHelper tileQueryHelper) {
super(new ContextThemeWrapper(context, R.style.edit_theme), attrs);
LayoutInflater.from(getContext()).inflate(R.layout.qs_customize_panel_content, this);
@@ -113,7 +114,8 @@
mRecyclerView = findViewById(android.R.id.list);
mTransparentView = findViewById(R.id.customizer_transparent_view);
mTileAdapter = new TileAdapter(getContext());
- mTileQueryHelper = new TileQueryHelper(context, mTileAdapter);
+ mTileQueryHelper = tileQueryHelper;
+ mTileQueryHelper.setListener(mTileAdapter);
mRecyclerView.setAdapter(mTileAdapter);
mTileAdapter.getItemTouchHelper().attachToRecyclerView(mRecyclerView);
GridLayoutManager layout = new GridLayoutManager(getContext(), 3);
diff --git a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java
index 7006249..0a9100f 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/customize/TileQueryHelper.java
@@ -33,8 +33,9 @@
import android.util.ArraySet;
import android.widget.Button;
-import com.android.systemui.Dependency;
import com.android.systemui.R;
+import com.android.systemui.dagger.qualifiers.BgHandler;
+import com.android.systemui.dagger.qualifiers.MainHandler;
import com.android.systemui.plugins.qs.QSTile;
import com.android.systemui.plugins.qs.QSTile.State;
import com.android.systemui.qs.QSTileHost;
@@ -47,6 +48,8 @@
import java.util.Collection;
import java.util.List;
+import javax.inject.Inject;
+
public class TileQueryHelper {
private static final String TAG = "TileQueryHelper";
@@ -55,15 +58,20 @@
private final Handler mBgHandler;
private final Handler mMainHandler;
private final Context mContext;
- private final TileStateListener mListener;
+ private TileStateListener mListener;
private boolean mFinished;
- public TileQueryHelper(Context context, TileStateListener listener) {
+ @Inject
+ public TileQueryHelper(Context context,
+ @MainHandler Handler mainHandler, @BgHandler Handler bgHandler) {
mContext = context;
+ mMainHandler = mainHandler;
+ mBgHandler = bgHandler;
+ }
+
+ public void setListener(TileStateListener listener) {
mListener = listener;
- mBgHandler = new Handler(Dependency.get(Dependency.BG_LOOPER));
- mMainHandler = Dependency.get(Dependency.MAIN_HANDLER);
}
public void queryTiles(QSTileHost host) {
@@ -178,7 +186,9 @@
private void notifyTilesChanged(final boolean finished) {
final ArrayList<TileInfo> tilesToReturn = new ArrayList<>(mTiles);
mMainHandler.post(() -> {
- mListener.onTilesChanged(tilesToReturn);
+ if (mListener != null) {
+ mListener.onTilesChanged(tilesToReturn);
+ }
mFinished = finished;
});
}
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java
index 8bbfd24..f0140ba 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/NfcTile.java
@@ -132,7 +132,7 @@
private NfcAdapter getAdapter() {
if (mAdapter == null) {
try {
- mAdapter = NfcAdapter.getNfcAdapter(mContext);
+ mAdapter = NfcAdapter.getDefaultAdapter(mContext);
} catch (UnsupportedOperationException e) {
mAdapter = null;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorListView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorListView.kt
index 6faf77e..983315e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorListView.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/ChannelEditorListView.kt
@@ -129,6 +129,8 @@
iconView = findViewById(R.id.icon)
channelName = findViewById(R.id.app_name)
switch = findViewById(R.id.toggle)
+
+ setOnClickListener { switch.toggle() }
}
}
@@ -156,6 +158,7 @@
controller.proposeEditForChannel(it, if (b) it.importance else IMPORTANCE_NONE)
}
}
+ setOnClickListener { switch.toggle() }
}
private fun updateViews() {
diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java
index 9e226f6..b41512c 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/qs/customize/TileQueryHelperTest.java
@@ -36,6 +36,8 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
+import android.os.Handler;
+import android.os.Looper;
import android.provider.Settings;
import android.service.quicksettings.Tile;
import android.testing.AndroidTestingRunner;
@@ -46,7 +48,6 @@
import androidx.test.filters.SmallTest;
-import com.android.systemui.Dependency;
import com.android.systemui.R;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.plugins.qs.QSTile;
@@ -99,12 +100,12 @@
private QSTile.State mState;
private TestableLooper mBGLooper;
private TileQueryHelper mTileQueryHelper;
+ private Handler mMainHandler;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
mBGLooper = TestableLooper.get(this);
- mDependency.injectTestDependency(Dependency.BG_LOOPER, mBGLooper.getLooper());
mContext.setMockPackageManager(mPackageManager);
mState = new QSTile.State();
@@ -122,7 +123,10 @@
}
).when(mQSTileHost).createTile(anyString());
- mTileQueryHelper = new TileQueryHelper(mContext, mListener);
+ mMainHandler = new Handler(Looper.getMainLooper());
+ mTileQueryHelper = new TileQueryHelper(mContext, mMainHandler,
+ new Handler(mBGLooper.getLooper()));
+ mTileQueryHelper.setListener(mListener);
}
@Test
@@ -135,7 +139,7 @@
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
- waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+ waitForIdleSync(mMainHandler);
assertTrue(mTileQueryHelper.isFinished());
}
@@ -145,7 +149,7 @@
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
- waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+ waitForIdleSync(mMainHandler);
verify(mListener, times(2)).onTilesChanged(any());
}
@@ -160,7 +164,7 @@
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
- waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+ waitForIdleSync(mMainHandler);
assertTrue(mTileQueryHelper.isFinished());
}
@@ -175,7 +179,7 @@
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
- waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+ waitForIdleSync(mMainHandler);
verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture());
List<String> specs = new ArrayList<>();
@@ -196,7 +200,7 @@
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
- waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+ waitForIdleSync(mMainHandler);
verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture());
List<String> specs = new ArrayList<>();
@@ -217,7 +221,7 @@
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
- waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+ waitForIdleSync(mMainHandler);
verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture());
List<String> specs = new ArrayList<>();
@@ -248,7 +252,7 @@
mTileQueryHelper.queryTiles(mQSTileHost);
mBGLooper.processAllMessages();
- waitForIdleSync(Dependency.get(Dependency.MAIN_HANDLER));
+ waitForIdleSync(mMainHandler);
verify(mListener, atLeastOnce()).onTilesChanged(mCaptor.capture());
List<TileQueryHelper.TileInfo> tileInfos = mCaptor.getValue();
diff --git a/services/core/java/android/app/usage/UsageStatsManagerInternal.java b/services/core/java/android/app/usage/UsageStatsManagerInternal.java
index 2f8c506..6641b5b 100644
--- a/services/core/java/android/app/usage/UsageStatsManagerInternal.java
+++ b/services/core/java/android/app/usage/UsageStatsManagerInternal.java
@@ -281,13 +281,4 @@
return mUsageRemaining;
}
}
-
- /**
- * Called by {@link com.android.server.usage.UsageStatsIdleService} when the device is idle to
- * prune usage stats data for uninstalled packages.
- *
- * @param userId the user associated with the job
- * @return {@code true} if the pruning was successful, {@code false} otherwise
- */
- public abstract boolean pruneUninstalledPackagesData(@UserIdInt int userId);
}
diff --git a/services/core/java/android/content/pm/PackageManagerInternal.java b/services/core/java/android/content/pm/PackageManagerInternal.java
index dc24cff..e67d736 100644
--- a/services/core/java/android/content/pm/PackageManagerInternal.java
+++ b/services/core/java/android/content/pm/PackageManagerInternal.java
@@ -22,6 +22,7 @@
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.content.ComponentName;
+import android.content.ContentResolver;
import android.content.Intent;
import android.content.IntentSender;
import android.content.pm.PackageManager.ApplicationInfoFlags;
@@ -244,12 +245,16 @@
/**
* Retrieve all activities that can be performed for the given intent.
+ * @param resolvedType the resolved type of the intent, which should be resolved via
+ * {@link Intent#resolveTypeIfNeeded(ContentResolver)} before passing to {@link PackageManager}
* @param filterCallingUid The results will be filtered in the context of this UID instead
* of the calling UID.
* @see PackageManager#queryIntentActivities(Intent, int)
*/
- public abstract List<ResolveInfo> queryIntentActivities(Intent intent,
- @ResolveInfoFlags int flags, int filterCallingUid, int userId);
+ public abstract List<ResolveInfo> queryIntentActivities(
+ Intent intent, @Nullable String resolvedType, @ResolveInfoFlags int flags,
+ int filterCallingUid, int userId);
+
/**
* Retrieve all services that can be performed for the given intent.
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java
index 30674db..0591704 100644
--- a/services/core/java/com/android/server/am/OomAdjuster.java
+++ b/services/core/java/com/android/server/am/OomAdjuster.java
@@ -306,7 +306,7 @@
@GuardedBy("mService")
void updateOomAdjLocked(String oomAdjReason) {
final ProcessRecord topApp = mService.getTopAppLocked();
- updateOomAdjLockedInner(oomAdjReason, topApp , null, null, true);
+ updateOomAdjLockedInner(oomAdjReason, topApp , null, null, true, true);
}
/**
@@ -361,8 +361,10 @@
uids.clear();
queue.clear();
- // borrow the "containsCycle" flag to mark it being scanned
- app.containsCycle = true;
+ // Track if any of them reachables could include a cycle
+ boolean containsCycle = false;
+ // Scan downstreams of the process record
+ app.mReachable = true;
for (ProcessRecord pr = app; pr != null; pr = queue.poll()) {
if (pr != app) {
processes.add(pr);
@@ -374,7 +376,7 @@
ConnectionRecord cr = pr.connections.valueAt(i);
ProcessRecord service = (cr.flags & ServiceInfo.FLAG_ISOLATED_PROCESS) != 0
? cr.binding.service.isolatedProc : cr.binding.service.app;
- if (service == null || service.containsCycle) {
+ if (service == null || service == pr || (containsCycle |= service.mReachable)) {
continue;
}
if ((cr.flags & (Context.BIND_WAIVE_PRIORITY
@@ -384,21 +386,21 @@
continue;
}
queue.offer(service);
- service.containsCycle = true;
+ service.mReachable = true;
}
for (int i = pr.conProviders.size() - 1; i >= 0; i--) {
ContentProviderConnection cpc = pr.conProviders.get(i);
ProcessRecord provider = cpc.provider.proc;
- if (provider == null || provider.containsCycle) {
+ if (provider == null || provider == pr || (containsCycle |= provider.mReachable)) {
continue;
}
queue.offer(provider);
- provider.containsCycle = true;
+ provider.mReachable = true;
}
}
// Reset the flag
- app.containsCycle = false;
+ app.mReachable = false;
int size = processes.size();
if (size > 0) {
// Reverse the process list, since the updateOomAdjLockedInner scans from the end of it.
@@ -409,7 +411,7 @@
}
mAdjSeq--;
// Update these reachable processes
- updateOomAdjLockedInner(oomAdjReason, topApp, processes, uids, false);
+ updateOomAdjLockedInner(oomAdjReason, topApp, processes, uids, containsCycle, false);
} else if (app.getCurRawAdj() == ProcessList.UNKNOWN_ADJ) {
// In case the app goes from non-cached to cached but it doesn't have other reachable
// processes, its adj could be still unknown as of now, assign one.
@@ -430,7 +432,8 @@
*/
@GuardedBy("mService")
private void updateOomAdjLockedInner(String oomAdjReason, final ProcessRecord topApp,
- ArrayList<ProcessRecord> processes, ActiveUids uids, boolean startProfiling) {
+ ArrayList<ProcessRecord> processes, ActiveUids uids, boolean potentialCycles,
+ boolean startProfiling) {
if (startProfiling) {
Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, oomAdjReason);
mService.mOomAdjProfiler.oomAdjStarted();
@@ -474,11 +477,13 @@
}
boolean retryCycles = false;
+ boolean computeClients = fullUpdate || potentialCycles;
// need to reset cycle state before calling computeOomAdjLocked because of service conns
for (int i = numProc - 1; i >= 0; i--) {
ProcessRecord app = activeProcesses.get(i);
app.containsCycle = false;
+ app.mReachable = false;
app.setCurRawProcState(PROCESS_STATE_CACHED_EMPTY);
app.setCurRawAdj(ProcessList.UNKNOWN_ADJ);
app.setCapability = PROCESS_CAPABILITY_NONE;
@@ -489,7 +494,7 @@
if (!app.killedByAm && app.thread != null) {
app.procStateChanged = false;
computeOomAdjLocked(app, ProcessList.UNKNOWN_ADJ, topApp, fullUpdate, now, false,
- fullUpdate); // It won't enter cycle if not computing clients.
+ computeClients); // It won't enter cycle if not computing clients.
// if any app encountered a cycle, we need to perform an additional loop later
retryCycles |= app.containsCycle;
// Keep the completedAdjSeq to up to date.
@@ -499,7 +504,7 @@
assignCachedAdjIfNecessary(mProcessList.mLruProcesses);
- if (fullUpdate) { // There won't be cycles if we didn't compute clients above.
+ if (computeClients) { // There won't be cycles if we didn't compute clients above.
// Cycle strategy:
// - Retry computing any process that has encountered a cycle.
// - Continue retrying until no process was promoted.
diff --git a/services/core/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
index 1e0693f..5db6ff7 100644
--- a/services/core/java/com/android/server/am/ProcessRecord.java
+++ b/services/core/java/com/android/server/am/ProcessRecord.java
@@ -327,6 +327,8 @@
int mCachedProcState = ActivityManager.PROCESS_STATE_CACHED_EMPTY;
int mCachedSchedGroup = ProcessList.SCHED_GROUP_BACKGROUND;
+ boolean mReachable; // Whether or not this process is reachable from given process
+
void setStartParams(int startUid, HostingRecord hostingRecord, String seInfo,
long startTime) {
this.startUid = startUid;
diff --git a/services/core/java/com/android/server/compat/PlatformCompat.java b/services/core/java/com/android/server/compat/PlatformCompat.java
index ae5ad7e..311e24f 100644
--- a/services/core/java/com/android/server/compat/PlatformCompat.java
+++ b/services/core/java/com/android/server/compat/PlatformCompat.java
@@ -20,7 +20,7 @@
import android.app.IActivityManager;
import android.content.Context;
import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
+import android.content.pm.PackageManagerInternal;
import android.os.Binder;
import android.os.RemoteException;
import android.os.UserHandle;
@@ -32,6 +32,7 @@
import com.android.internal.compat.CompatibilityChangeInfo;
import com.android.internal.compat.IPlatformCompat;
import com.android.internal.util.DumpUtils;
+import com.android.server.LocalServices;
import java.io.FileDescriptor;
import java.io.PrintWriter;
@@ -197,12 +198,8 @@
}
private ApplicationInfo getApplicationInfo(String packageName, int userId) {
- try {
- return mContext.getPackageManager().getApplicationInfoAsUser(packageName, 0, userId);
- } catch (PackageManager.NameNotFoundException e) {
- Slog.e(TAG, "No installed package " + packageName);
- }
- return null;
+ return LocalServices.getService(PackageManagerInternal.class).getApplicationInfo(
+ packageName, 0, userId, userId);
}
private void reportChange(long changeId, int uid, int state) {
@@ -210,11 +207,11 @@
}
private void killPackage(String packageName) {
- int uid = -1;
- try {
- uid = mContext.getPackageManager().getPackageUid(packageName, 0);
- } catch (PackageManager.NameNotFoundException e) {
- Slog.w(TAG, "Didn't find package " + packageName + " on device.", e);
+ int uid = LocalServices.getService(PackageManagerInternal.class).getPackageUid(packageName,
+ 0, UserHandle.myUserId());
+
+ if (uid < 0) {
+ Slog.w(TAG, "Didn't find package " + packageName + " on device.");
return;
}
diff --git a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java
index d6108b7c..d2a6b42 100644
--- a/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java
+++ b/services/core/java/com/android/server/pm/CrossProfileAppsServiceImpl.java
@@ -202,6 +202,7 @@
final List<ResolveInfo> apps =
mInjector.getPackageManagerInternal().queryIntentActivities(
launchIntent,
+ launchIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
MATCH_DIRECT_BOOT_AWARE | MATCH_DIRECT_BOOT_UNAWARE,
callingUid,
userId);
diff --git a/services/core/java/com/android/server/pm/LauncherAppsService.java b/services/core/java/com/android/server/pm/LauncherAppsService.java
index bd95667..f7fd1b2 100644
--- a/services/core/java/com/android/server/pm/LauncherAppsService.java
+++ b/services/core/java/com/android/server/pm/LauncherAppsService.java
@@ -344,6 +344,7 @@
final PackageManagerInternal pmInt =
LocalServices.getService(PackageManagerInternal.class);
List<ResolveInfo> apps = pmInt.queryIntentActivities(intent,
+ intent.resolveTypeIfNeeded(mContext.getContentResolver()),
PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
callingUid, user.getIdentifier());
@@ -468,6 +469,7 @@
matchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
matchIntent.setPackage(packageName);
final List<ResolveInfo> infoList = pmInt.queryIntentActivities(matchIntent,
+ matchIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
PackageManager.MATCH_DISABLED_COMPONENTS, Binder.getCallingUid(),
getCallingUserId());
final int size = infoList.size();
@@ -539,6 +541,7 @@
final PackageManagerInternal pmInt =
LocalServices.getService(PackageManagerInternal.class);
List<ResolveInfo> apps = pmInt.queryIntentActivities(intent,
+ intent.resolveTypeIfNeeded(mContext.getContentResolver()),
PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
callingUid, user.getIdentifier());
@@ -842,6 +845,7 @@
// as calling startActivityAsUser ignores the category and just
// resolves based on the component if present.
List<ResolveInfo> apps = pmInt.queryIntentActivities(launchIntent,
+ launchIntent.resolveTypeIfNeeded(mContext.getContentResolver()),
PackageManager.MATCH_DIRECT_BOOT_AWARE
| PackageManager.MATCH_DIRECT_BOOT_UNAWARE,
callingUid, user.getIdentifier());
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 2b5ad22..eebc8d7 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -22870,39 +22870,79 @@
return pkg == null ? null : pkg.packageName;
}
+ /**
+ * Only keep package names that refer to {@link PackageParser.Package#isSystem system}
+ * packages.
+ *
+ * @param pkgNames The packages to filter
+ *
+ * @return The filtered packages
+ */
+ private @NonNull String[] filterOnlySystemPackages(@Nullable String... pkgNames) {
+ if (pkgNames == null) {
+ return ArrayUtils.emptyArray(String.class);
+ }
+
+ ArrayList<String> systemPackageNames = new ArrayList<>(pkgNames.length);
+
+ for (String pkgName: pkgNames) {
+ synchronized (mPackages) {
+ if (pkgName == null) {
+ continue;
+ }
+
+ PackageParser.Package pkg = getPackage(pkgName);
+ if (pkg == null) {
+ Log.w(TAG, "Could not find package " + pkgName);
+ continue;
+ }
+
+ if (!pkg.isSystem()) {
+ Log.w(TAG, pkgName + " is not system");
+ continue;
+ }
+
+ systemPackageNames.add(pkgName);
+ }
+ }
+
+ return systemPackageNames.toArray(new String[]{});
+ }
+
@Override
public @NonNull String[] getKnownPackageNames(int knownPackage, int userId) {
- switch(knownPackage) {
+ switch (knownPackage) {
case PackageManagerInternal.PACKAGE_BROWSER:
return new String[]{mPermissionManager.getDefaultBrowser(userId)};
case PackageManagerInternal.PACKAGE_INSTALLER:
- return new String[]{mRequiredInstallerPackage};
+ return filterOnlySystemPackages(mRequiredInstallerPackage);
case PackageManagerInternal.PACKAGE_SETUP_WIZARD:
- return new String[]{mSetupWizardPackage};
+ return filterOnlySystemPackages(mSetupWizardPackage);
case PackageManagerInternal.PACKAGE_SYSTEM:
return new String[]{"android"};
case PackageManagerInternal.PACKAGE_VERIFIER:
- return new String[]{mRequiredVerifierPackage};
+ return filterOnlySystemPackages(mRequiredVerifierPackage);
case PackageManagerInternal.PACKAGE_SYSTEM_TEXT_CLASSIFIER:
- return new String[]{mSystemTextClassifierPackage};
+ return filterOnlySystemPackages(mSystemTextClassifierPackage);
case PackageManagerInternal.PACKAGE_PERMISSION_CONTROLLER:
- return new String[]{mRequiredPermissionControllerPackage};
+ return filterOnlySystemPackages(mRequiredPermissionControllerPackage);
case PackageManagerInternal.PACKAGE_WELLBEING:
- return new String[]{mWellbeingPackage};
+ return filterOnlySystemPackages(mWellbeingPackage);
case PackageManagerInternal.PACKAGE_DOCUMENTER:
- return new String[]{mDocumenterPackage};
+ return filterOnlySystemPackages(mDocumenterPackage);
case PackageManagerInternal.PACKAGE_CONFIGURATOR:
- return new String[]{mConfiguratorPackage};
+ return filterOnlySystemPackages(mConfiguratorPackage);
case PackageManagerInternal.PACKAGE_INCIDENT_REPORT_APPROVER:
- return new String[]{mIncidentReportApproverPackage};
+ return filterOnlySystemPackages(mIncidentReportApproverPackage);
case PackageManagerInternal.PACKAGE_APP_PREDICTOR:
- return new String[]{mAppPredictionServicePackage};
+ return filterOnlySystemPackages(mAppPredictionServicePackage);
case PackageManagerInternal.PACKAGE_TELEPHONY:
- return mTelephonyPackages;
+ return filterOnlySystemPackages(mTelephonyPackages);
case PackageManagerInternal.PACKAGE_WIFI:
- return new String[]{mWifiPackage};
+ return filterOnlySystemPackages(mWifiPackage);
+ default:
+ return ArrayUtils.emptyArray(String.class);
}
- return ArrayUtils.emptyArray(String.class);
}
@Override
@@ -23057,8 +23097,7 @@
@Override
public List<ResolveInfo> queryIntentActivities(
- Intent intent, int flags, int filterCallingUid, int userId) {
- final String resolvedType = intent.resolveTypeIfNeeded(mContext.getContentResolver());
+ Intent intent, String resolvedType, int flags, int filterCallingUid, int userId) {
return PackageManagerService.this
.queryIntentActivitiesInternal(intent, resolvedType, flags, filterCallingUid,
userId, false /*resolveForStart*/, true /*allowDynamicSplits*/);
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 5f3650c..69c7cf2 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -3348,7 +3348,8 @@
int flags, ComponentName cn, String scheme, PatternMatcher ssp,
IntentFilter.AuthorityEntry auth, PatternMatcher path, int userId) {
final List<ResolveInfo> ri =
- pmInternal.queryIntentActivities(intent, flags, Binder.getCallingUid(), 0);
+ pmInternal.queryIntentActivities(
+ intent, intent.getType(), flags, Binder.getCallingUid(), 0);
if (PackageManagerService.DEBUG_PREFERRED) {
Log.d(TAG, "Queried " + intent + " results: " + ri);
}
diff --git a/services/core/java/com/android/server/wm/DisplayPolicy.java b/services/core/java/com/android/server/wm/DisplayPolicy.java
index 8d5f90d..77e557b 100644
--- a/services/core/java/com/android/server/wm/DisplayPolicy.java
+++ b/services/core/java/com/android/server/wm/DisplayPolicy.java
@@ -3126,12 +3126,13 @@
: new AppearanceRegion[]{
new AppearanceRegion(fullscreenAppearance, fullscreenStackBounds)};
final boolean isNavbarColorManagedByIme = result.second;
+ String cause = win.toString();
mHandler.post(() -> {
StatusBarManagerInternal statusBar = getStatusBarManagerInternal();
if (statusBar != null) {
final int displayId = getDisplayId();
statusBar.setDisableFlags(displayId, visibility & StatusBarManager.DISABLE_MASK,
- win.toString());
+ cause);
if (transientState.first.length > 0) {
statusBar.showTransient(displayId, transientState.first);
}
@@ -3143,8 +3144,10 @@
statusBar.topAppWindowChanged(displayId, isFullscreen, isImmersive);
// TODO(b/118118435): Remove this after removing system UI visibilities.
- mDisplayContent.statusBarVisibilityChanged(
- visibility & ~(View.STATUS_BAR_UNHIDE | View.NAVIGATION_BAR_UNHIDE));
+ synchronized (mLock) {
+ mDisplayContent.statusBarVisibilityChanged(
+ visibility & ~(View.STATUS_BAR_UNHIDE | View.NAVIGATION_BAR_UNHIDE));
+ }
}
});
return diff;
diff --git a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
index 2218366..5da3eb6 100644
--- a/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
+++ b/services/core/java/com/android/server/wm/WindowManagerShellCommand.java
@@ -20,7 +20,6 @@
import android.graphics.Point;
import android.graphics.Rect;
-import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.os.ShellCommand;
import android.os.UserHandle;
@@ -352,9 +351,7 @@
}
private int runDumpVisibleWindowViews(PrintWriter pw) {
- ParcelFileDescriptor outFile = openFileForSystem(getNextArgRequired(), "w");
- try (ZipOutputStream out = new ZipOutputStream(
- new ParcelFileDescriptor.AutoCloseOutputStream(outFile))) {
+ try (ZipOutputStream out = new ZipOutputStream(getRawOutputStream())) {
ArrayList<Pair<String, ByteTransferPipe>> requestList = new ArrayList<>();
synchronized (mInternal.mGlobalLock) {
// Request dump from all windows parallelly before writing to disk.
@@ -368,7 +365,6 @@
requestList.add(Pair.create(w.getName(), pipe));
} catch (IOException | RemoteException e) {
// Skip this window
- pw.println("Error for window " + w.getName() + " : " + e.getMessage());
if (pipe != null) {
pipe.kill();
}
@@ -382,8 +378,6 @@
data = entry.second.get();
} catch (IOException e) {
// Ignore this window
- pw.println(
- "Error for window " + entry.first + " : " + e.getMessage());
continue;
}
out.putNextEntry(new ZipEntry(entry.first));
@@ -414,7 +408,7 @@
pw.println(" Dismiss the keyguard, prompting user for auth if necessary.");
pw.println(" set-user-rotation [free|lock] [-d DISPLAY_ID] [rotation]");
pw.println(" Set user rotation mode and user rotation.");
- pw.println(" dump-visible-window-views out-file");
+ pw.println(" dump-visible-window-views");
pw.println(" Dumps the encoded view hierarchies of visible windows");
pw.println(" set-fix-to-user-rotation [-d DISPLAY_ID] [enabled|disabled]");
pw.println(" Enable or disable rotating display for app requested orientation.");
diff --git a/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java b/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java
index e7f6a74..6c09239 100644
--- a/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java
+++ b/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java
@@ -1027,11 +1027,28 @@
bindService(client, client2, null, 0, mock(IBinder.class));
client2.setHasForegroundServices(true, 0);
bindService(client2, app, null, 0, mock(IBinder.class));
+ ArrayList<ProcessRecord> lru = sService.mProcessList.mLruProcesses;
+ lru.clear();
+ lru.add(app);
+ lru.add(client);
+ lru.add(client2);
sService.mWakefulness = PowerManagerInternal.WAKEFULNESS_AWAKE;
- sService.mOomAdjuster.updateOomAdjLocked(app, false, OomAdjuster.OOM_ADJ_REASON_NONE);
+ sService.mOomAdjuster.updateOomAdjLocked(app, true, OomAdjuster.OOM_ADJ_REASON_NONE);
assertProcStates(app, PROCESS_STATE_FOREGROUND_SERVICE, PERCEPTIBLE_APP_ADJ,
SCHED_GROUP_DEFAULT);
+ assertProcStates(client, PROCESS_STATE_FOREGROUND_SERVICE, PERCEPTIBLE_APP_ADJ,
+ SCHED_GROUP_DEFAULT);
+ assertProcStates(client2, PROCESS_STATE_FOREGROUND_SERVICE, PERCEPTIBLE_APP_ADJ,
+ SCHED_GROUP_DEFAULT);
+
+ client2.setHasForegroundServices(false, 0);
+ sService.mWakefulness = PowerManagerInternal.WAKEFULNESS_AWAKE;
+ sService.mOomAdjuster.updateOomAdjLocked(client2, true, OomAdjuster.OOM_ADJ_REASON_NONE);
+
+ assertEquals(PROCESS_STATE_CACHED_EMPTY, client2.setProcState);
+ assertEquals(PROCESS_STATE_CACHED_EMPTY, client.setProcState);
+ assertEquals(PROCESS_STATE_CACHED_EMPTY, app.setProcState);
}
@SuppressWarnings("GuardedBy")
diff --git a/services/tests/servicestests/src/com/android/server/pm/CrossProfileAppsServiceImplTest.java b/services/tests/servicestests/src/com/android/server/pm/CrossProfileAppsServiceImplTest.java
index 839b25f..e18ff61 100644
--- a/services/tests/servicestests/src/com/android/server/pm/CrossProfileAppsServiceImplTest.java
+++ b/services/tests/servicestests/src/com/android/server/pm/CrossProfileAppsServiceImplTest.java
@@ -509,7 +509,7 @@
mActivityInfo = activityInfo;
when(mPackageManagerInternal.queryIntentActivities(
- any(Intent.class), anyInt(), anyInt(), anyInt()))
+ any(Intent.class), nullable(String.class), anyInt(), anyInt(), anyInt()))
.thenReturn(Collections.singletonList(resolveInfo));
}
diff --git a/services/tests/servicestests/src/com/android/server/usage/UsageStatsDatabaseTest.java b/services/tests/servicestests/src/com/android/server/usage/UsageStatsDatabaseTest.java
index e6bb244..e32103f 100644
--- a/services/tests/servicestests/src/com/android/server/usage/UsageStatsDatabaseTest.java
+++ b/services/tests/servicestests/src/com/android/server/usage/UsageStatsDatabaseTest.java
@@ -45,7 +45,6 @@
import java.io.IOException;
import java.util.List;
import java.util.Locale;
-import java.util.Set;
@RunWith(AndroidJUnit4.class)
@SmallTest
@@ -94,8 +93,6 @@
for (File f : usageFiles) {
f.delete();
}
- } else {
- intervalDir.delete();
}
}
}
@@ -590,7 +587,6 @@
db.readMappingsLocked();
db.init(1);
db.putUsageStats(interval, mIntervalStats);
- db.writeMappingsLocked();
final String removedPackage = "fake.package.name0";
// invoke handler call directly from test to remove package
@@ -598,19 +594,19 @@
List<IntervalStats> stats = db.queryUsageStats(interval, 0, mEndTime,
mIntervalStatsVerifier);
- assertEquals(1, stats.size(),
- "Only one interval stats object should exist for the given time range.");
- final IntervalStats stat = stats.get(0);
- if (stat.packageStats.containsKey(removedPackage)) {
- fail("Found removed package " + removedPackage + " in package stats.");
- return;
- }
- for (int i = 0; i < stat.events.size(); i++) {
- final Event event = stat.events.get(i);
- if (removedPackage.equals(event.mPackage)) {
- fail("Found an event from removed package " + removedPackage);
+ for (int i = 0; i < stats.size(); i++) {
+ final IntervalStats stat = stats.get(i);
+ if (stat.packageStats.containsKey(removedPackage)) {
+ fail("Found removed package " + removedPackage + " in package stats.");
return;
}
+ for (int j = 0; j < stat.events.size(); j++) {
+ final Event event = stat.events.get(j);
+ if (removedPackage.equals(event.mPackage)) {
+ fail("Found an event from removed package " + removedPackage);
+ return;
+ }
+ }
}
}
@@ -621,90 +617,4 @@
verifyPackageNotRetained(UsageStatsManager.INTERVAL_MONTHLY);
verifyPackageNotRetained(UsageStatsManager.INTERVAL_YEARLY);
}
-
- private void verifyPackageDataIsRemoved(UsageStatsDatabase db, int interval,
- String removedPackage) {
- List<IntervalStats> stats = db.queryUsageStats(interval, 0, mEndTime,
- mIntervalStatsVerifier);
- assertEquals(1, stats.size(),
- "Only one interval stats object should exist for the given time range.");
- final IntervalStats stat = stats.get(0);
- if (stat.packageStats.containsKey(removedPackage)) {
- fail("Found removed package " + removedPackage + " in package stats.");
- return;
- }
- for (int i = 0; i < stat.events.size(); i++) {
- final Event event = stat.events.get(i);
- if (removedPackage.equals(event.mPackage)) {
- fail("Found an event from removed package " + removedPackage);
- return;
- }
- }
- }
-
- private void verifyPackageDataIsNotRemoved(UsageStatsDatabase db, int interval,
- Set<String> installedPackages) {
- List<IntervalStats> stats = db.queryUsageStats(interval, 0, mEndTime,
- mIntervalStatsVerifier);
- assertEquals(1, stats.size(),
- "Only one interval stats object should exist for the given time range.");
- final IntervalStats stat = stats.get(0);
- if (!stat.packageStats.containsAll(installedPackages)) {
- fail("Could not find some installed packages in package stats.");
- return;
- }
- // attempt to find an event from each installed package
- for (String installedPackage : installedPackages) {
- for (int i = 0; i < stat.events.size(); i++) {
- if (installedPackage.equals(stat.events.get(i).mPackage)) {
- break;
- }
- if (i == stat.events.size() - 1) {
- fail("Could not find any event for: " + installedPackage);
- return;
- }
- }
- }
- }
-
- @Test
- public void testPackageDataIsRemoved() throws IOException {
- UsageStatsDatabase db = new UsageStatsDatabase(mTestDir);
- db.readMappingsLocked();
- db.init(1);
-
- // write stats to disk for each interval
- db.putUsageStats(UsageStatsManager.INTERVAL_DAILY, mIntervalStats);
- db.putUsageStats(UsageStatsManager.INTERVAL_WEEKLY, mIntervalStats);
- db.putUsageStats(UsageStatsManager.INTERVAL_MONTHLY, mIntervalStats);
- db.putUsageStats(UsageStatsManager.INTERVAL_YEARLY, mIntervalStats);
- db.writeMappingsLocked();
-
- final Set<String> installedPackages = mIntervalStats.packageStats.keySet();
- final String removedPackage = installedPackages.iterator().next();
- installedPackages.remove(removedPackage);
-
- // mimic a package uninstall
- db.onPackageRemoved(removedPackage, System.currentTimeMillis());
-
- // mimic the idle prune job being triggered
- db.pruneUninstalledPackagesData();
-
- // read data from disk into a new db instance
- UsageStatsDatabase newDB = new UsageStatsDatabase(mTestDir);
- newDB.readMappingsLocked();
- newDB.init(mEndTime);
-
- // query data for each interval and ensure data for package doesn't exist
- verifyPackageDataIsRemoved(newDB, UsageStatsManager.INTERVAL_DAILY, removedPackage);
- verifyPackageDataIsRemoved(newDB, UsageStatsManager.INTERVAL_WEEKLY, removedPackage);
- verifyPackageDataIsRemoved(newDB, UsageStatsManager.INTERVAL_MONTHLY, removedPackage);
- verifyPackageDataIsRemoved(newDB, UsageStatsManager.INTERVAL_YEARLY, removedPackage);
-
- // query data for each interval and ensure some data for installed packages exists
- verifyPackageDataIsNotRemoved(newDB, UsageStatsManager.INTERVAL_DAILY, installedPackages);
- verifyPackageDataIsNotRemoved(newDB, UsageStatsManager.INTERVAL_WEEKLY, installedPackages);
- verifyPackageDataIsNotRemoved(newDB, UsageStatsManager.INTERVAL_MONTHLY, installedPackages);
- verifyPackageDataIsNotRemoved(newDB, UsageStatsManager.INTERVAL_YEARLY, installedPackages);
- }
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
index 24db657..5336811 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityDisplayTests.java
@@ -134,10 +134,9 @@
public void testNotResumeHomeStackOnRemovingDisplay() {
// Create a display which supports system decoration and allows reparenting stacks to
// another display when the display is removed.
- final ActivityDisplay display = createNewActivityDisplay();
+ final ActivityDisplay display = new TestActivityDisplay.Builder(
+ mService, 1000, 1500).setSystemDecorations(true).build();
doReturn(false).when(display).shouldDestroyContentOnRemove();
- doReturn(true).when(display).supportsSystemDecorations();
- mRootActivityContainer.addChild(display, ActivityDisplay.POSITION_TOP);
// Put home stack on the display.
final ActivityStack homeStack = new StackBuilder(mRootActivityContainer)
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
index 9af90e3..ae1bb8e 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityStarterTests.java
@@ -760,8 +760,9 @@
false /* mockGetLaunchStack */);
// Create a secondary display at bottom.
- final TestActivityDisplay secondaryDisplay = createNewActivityDisplay();
- mRootActivityContainer.addChild(secondaryDisplay, POSITION_BOTTOM);
+ final TestActivityDisplay secondaryDisplay =
+ new TestActivityDisplay.Builder(mService, 1000, 1500)
+ .setPosition(POSITION_BOTTOM).build();
final ActivityStack stack = secondaryDisplay.createStack(WINDOWING_MODE_FULLSCREEN,
ACTIVITY_TYPE_STANDARD, true /* onTop */);
@@ -798,7 +799,8 @@
false /* mockGetLaunchStack */);
// Create a secondary display with an activity.
- final TestActivityDisplay secondaryDisplay = createNewActivityDisplay();
+ final TestActivityDisplay secondaryDisplay =
+ new TestActivityDisplay.Builder(mService, 1000, 1500).build();
mRootActivityContainer.addChild(secondaryDisplay, POSITION_TOP);
final ActivityRecord singleTaskActivity = createSingleTaskActivityOn(
secondaryDisplay.createStack(WINDOWING_MODE_FULLSCREEN,
diff --git a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
index 1632681..7322ac3 100644
--- a/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/ActivityTestsBase.java
@@ -43,7 +43,6 @@
import android.os.Build;
import android.os.UserHandle;
import android.service.voice.IVoiceInteractionSession;
-import android.view.DisplayInfo;
import com.android.server.AttributeCache;
@@ -78,27 +77,9 @@
mRootActivityContainer = mService.mRootActivityContainer;
}
- /** Creates a {@link TestActivityDisplay}. */
- TestActivityDisplay createNewActivityDisplay() {
- return TestActivityDisplay.create(mSupervisor);
- }
-
- TestActivityDisplay createNewActivityDisplay(DisplayInfo info) {
- return TestActivityDisplay.create(mSupervisor, info);
- }
-
/** Creates and adds a {@link TestActivityDisplay} to supervisor at the given position. */
TestActivityDisplay addNewActivityDisplayAt(int position) {
- final TestActivityDisplay display = createNewActivityDisplay();
- mRootActivityContainer.addChild(display, position);
- return display;
- }
-
- /** Creates and adds a {@link TestActivityDisplay} to supervisor at the given position. */
- TestActivityDisplay addNewActivityDisplayAt(DisplayInfo info, int position) {
- final TestActivityDisplay display = createNewActivityDisplay(info);
- mRootActivityContainer.addChild(display, position);
- return display;
+ return new TestActivityDisplay.Builder(mService, 1000, 1500).setPosition(position).build();
}
/** Sets the default minimum task size to 1 so that tests can use small task sizes */
diff --git a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
index 0908f71..79ad0c4 100644
--- a/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/LaunchParamsPersisterTests.java
@@ -36,7 +36,6 @@
import android.graphics.Rect;
import android.os.UserHandle;
import android.platform.test.annotations.Presubmit;
-import android.view.DisplayInfo;
import androidx.test.InstrumentationRegistry;
import androidx.test.filters.MediumTest;
@@ -103,11 +102,8 @@
deleteRecursively(mFolder);
mDisplayUniqueId = "test:" + Integer.toString(sNextUniqueId++);
- final DisplayInfo info = new DisplayInfo();
- mService.mContext.getDisplay().getDisplayInfo(info);
- info.uniqueId = mDisplayUniqueId;
- mTestDisplay = createNewActivityDisplay(info);
- mRootActivityContainer.addChild(mTestDisplay, ActivityDisplay.POSITION_TOP);
+ mTestDisplay = new TestActivityDisplay.Builder(mService, 1000, 1500)
+ .setUniqueId(mDisplayUniqueId).build();
when(mRootActivityContainer.getActivityDisplay(eq(mDisplayUniqueId)))
.thenReturn(mTestDisplay);
diff --git a/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java b/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
index 3cc781c..e2bdf87 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RootActivityContainerTests.java
@@ -35,7 +35,6 @@
import static com.android.dx.mockito.inline.extended.ExtendedMockito.spyOn;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.times;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
-import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
import static com.android.server.wm.ActivityStackSupervisor.ON_TOP;
import static com.android.server.wm.RootActivityContainer.MATCH_TASK_IN_STACKS_OR_RECENT_TASKS_AND_RESTORE;
@@ -61,7 +60,6 @@
import android.graphics.Rect;
import android.platform.test.annotations.Presubmit;
import android.util.Pair;
-import android.view.DisplayInfo;
import androidx.test.filters.MediumTest;
@@ -518,9 +516,9 @@
mockResolveSecondaryHomeActivity();
// Create secondary displays.
- final TestActivityDisplay secondDisplay = createNewActivityDisplay();
- mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
- doReturn(true).when(secondDisplay).supportsSystemDecorations();
+ final TestActivityDisplay secondDisplay =
+ new TestActivityDisplay.Builder(mService, 1000, 1500)
+ .setSystemDecorations(true).build();
doReturn(true).when(mRootActivityContainer)
.ensureVisibilityAndConfig(any(), anyInt(), anyBoolean(), anyBoolean());
@@ -585,10 +583,10 @@
@Test
public void testStartSecondaryHomeOnDisplayWithUserKeyLocked() {
// Create secondary displays.
- final TestActivityDisplay secondDisplay = createNewActivityDisplay();
- mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
+ final TestActivityDisplay secondDisplay =
+ new TestActivityDisplay.Builder(mService, 1000, 1500)
+ .setSystemDecorations(true).build();
- doReturn(true).when(secondDisplay).supportsSystemDecorations();
// Use invalid user id to let StorageManager.isUserKeyUnlocked() return false.
final int currentUser = mRootActivityContainer.mCurrentUser;
mRootActivityContainer.mCurrentUser = -1;
@@ -611,9 +609,9 @@
@Test
public void testStartSecondaryHomeOnDisplayWithoutSysDecorations() {
// Create secondary displays.
- final TestActivityDisplay secondDisplay = createNewActivityDisplay();
- mRootActivityContainer.addChild(secondDisplay, POSITION_TOP);
- doReturn(false).when(secondDisplay).supportsSystemDecorations();
+ final TestActivityDisplay secondDisplay =
+ new TestActivityDisplay.Builder(mService, 1000, 1500)
+ .setSystemDecorations(false).build();
mRootActivityContainer.startHomeOnDisplay(0 /* userId */, "testStartSecondaryHome",
secondDisplay.mDisplayId, true /* allowInstrumenting */, true /* fromHomeKey */);
@@ -834,12 +832,9 @@
@Test
public void testGetLaunchStackWithRealCallerId() {
// Create a non-system owned virtual display.
- final DisplayInfo info = new DisplayInfo();
- mSupervisor.mService.mContext.getDisplay().getDisplayInfo(info);
- info.type = TYPE_VIRTUAL;
- info.ownerUid = 100;
- final TestActivityDisplay secondaryDisplay = TestActivityDisplay.create(mSupervisor, info);
- mRootActivityContainer.addChild(secondaryDisplay, POSITION_TOP);
+ final TestActivityDisplay secondaryDisplay =
+ new TestActivityDisplay.Builder(mService, 1000, 1500)
+ .setType(TYPE_VIRTUAL).setOwnerUid(100).build();
// Create an activity with specify the original launch pid / uid.
final ActivityRecord r = new ActivityBuilder(mService).setLaunchedFromPid(200)
diff --git a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
index 15dcbf5..eba2bc8 100644
--- a/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
+++ b/services/tests/wmtests/src/com/android/server/wm/RunningTasksTest.java
@@ -18,7 +18,6 @@
import static android.app.WindowConfiguration.ACTIVITY_TYPE_UNDEFINED;
import static android.app.WindowConfiguration.WINDOWING_MODE_UNDEFINED;
-import static android.view.Display.DEFAULT_DISPLAY;
import static com.google.common.truth.Truth.assertThat;
@@ -59,13 +58,15 @@
public void testCollectTasksByLastActiveTime() {
// Create a number of stacks with tasks (of incrementing active time)
final ArrayList<ActivityDisplay> displays = new ArrayList<>();
- final ActivityDisplay display = TestActivityDisplay.create(mSupervisor, DEFAULT_DISPLAY);
+ final ActivityDisplay display =
+ new TestActivityDisplay.Builder(mService, 1000, 2500).build();
displays.add(display);
final int numStacks = 2;
for (int stackIndex = 0; stackIndex < numStacks; stackIndex++) {
final ActivityStack stack = new StackBuilder(mRootActivityContainer)
.setCreateActivity(false)
+ .setDisplay(display)
.setOnTop(false)
.build();
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
index b07a27b..c8f81f4 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TaskRecordTests.java
@@ -37,7 +37,6 @@
import static com.android.dx.mockito.inline.extended.ExtendedMockito.verify;
import static com.android.server.policy.WindowManagerPolicy.USER_ROTATION_FREE;
import static com.android.server.wm.DisplayRotation.FIXED_TO_USER_ROTATION_ENABLED;
-import static com.android.server.wm.WindowContainer.POSITION_TOP;
import static com.google.common.truth.Truth.assertThat;
@@ -266,11 +265,8 @@
public void testFullscreenBoundsForcedOrientation() {
final Rect fullScreenBounds = new Rect(0, 0, 1920, 1080);
final Rect fullScreenBoundsPort = new Rect(0, 0, 1080, 1920);
- DisplayInfo info = new DisplayInfo();
- mService.mContext.getDisplay().getDisplayInfo(info);
- info.logicalWidth = fullScreenBounds.width();
- info.logicalHeight = fullScreenBounds.height();
- ActivityDisplay display = addNewActivityDisplayAt(info, POSITION_TOP);
+ ActivityDisplay display = new TestActivityDisplay.Builder(
+ mService, fullScreenBounds.width(), fullScreenBounds.height()).build();
assertTrue(mRootActivityContainer.getActivityDisplay(display.mDisplayId) != null);
// Fix the display orientation to landscape which is the natural rotation (0) for the test
// display.
@@ -332,11 +328,8 @@
@Test
public void testIgnoresForcedOrientationWhenParentHandles() {
final Rect fullScreenBounds = new Rect(0, 0, 1920, 1080);
- DisplayInfo info = new DisplayInfo();
- mService.mContext.getDisplay().getDisplayInfo(info);
- info.logicalWidth = fullScreenBounds.width();
- info.logicalHeight = fullScreenBounds.height();
- ActivityDisplay display = addNewActivityDisplayAt(info, POSITION_TOP);
+ ActivityDisplay display = new TestActivityDisplay.Builder(
+ mService, fullScreenBounds.width(), fullScreenBounds.height()).build();
display.getRequestedOverrideConfiguration().orientation =
Configuration.ORIENTATION_LANDSCAPE;
diff --git a/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java b/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java
index 48ec261..247cd87 100644
--- a/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java
+++ b/services/tests/wmtests/src/com/android/server/wm/TestActivityDisplay.java
@@ -17,7 +17,6 @@
package com.android.server.wm;
import static android.app.WindowConfiguration.WINDOWING_MODE_FULLSCREEN;
-import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.DisplayAdjustments.DEFAULT_DISPLAY_ADJUSTMENTS;
import static com.android.dx.mockito.inline.extended.ExtendedMockito.anyBoolean;
@@ -39,36 +38,6 @@
class TestActivityDisplay extends ActivityDisplay {
private final ActivityStackSupervisor mSupervisor;
- static TestActivityDisplay create(ActivityStackSupervisor supervisor) {
- return create(supervisor, SystemServicesTestRule.sNextDisplayId++);
- }
-
- static TestActivityDisplay create(ActivityStackSupervisor supervisor, DisplayInfo info) {
- return create(supervisor, SystemServicesTestRule.sNextDisplayId++, info);
- }
-
- static TestActivityDisplay create(ActivityStackSupervisor supervisor, int displayId) {
- final DisplayInfo info = new DisplayInfo();
- supervisor.mService.mContext.getDisplay().getDisplayInfo(info);
- return create(supervisor, displayId, info);
- }
-
- static TestActivityDisplay create(ActivityStackSupervisor supervisor, int displayId,
- DisplayInfo info) {
- if (displayId == DEFAULT_DISPLAY) {
- synchronized (supervisor.mService.mGlobalLock) {
- return new TestActivityDisplay(supervisor,
- supervisor.mRootActivityContainer.mDisplayManager.getDisplay(displayId));
- }
- }
- final Display display = new Display(DisplayManagerGlobal.getInstance(), displayId,
- info, DEFAULT_DISPLAY_ADJUSTMENTS);
-
- synchronized (supervisor.mService.mGlobalLock) {
- return new TestActivityDisplay(supervisor, display);
- }
- }
-
private TestActivityDisplay(ActivityStackSupervisor supervisor, Display display) {
super(supervisor.mService.mRootActivityContainer, display);
// Normally this comes from display-properties as exposed by WM. Without that, just
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java b/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java
index cc90ca1..4d25a83 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowProcessControllerTests.java
@@ -18,8 +18,6 @@
import static android.view.Display.INVALID_DISPLAY;
-import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -132,8 +130,6 @@
}
private TestActivityDisplay createTestActivityDisplayInContainer() {
- final TestActivityDisplay testActivityDisplay = createNewActivityDisplay();
- mRootActivityContainer.addChild(testActivityDisplay, POSITION_TOP);
- return testActivityDisplay;
+ return new TestActivityDisplay.Builder(mService, 1000, 1500).build();
}
}
diff --git a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
index 7aa5148..437b84b 100644
--- a/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
+++ b/services/tests/wmtests/src/com/android/server/wm/WindowTestsBase.java
@@ -36,8 +36,6 @@
import static androidx.test.platform.app.InstrumentationRegistry.getInstrumentation;
-import static com.android.server.wm.ActivityDisplay.POSITION_TOP;
-
import static org.mockito.Mockito.mock;
import android.content.Context;
@@ -343,8 +341,7 @@
/** Creates a {@link DisplayContent} and adds it to the system. */
DisplayContent createNewDisplay(DisplayInfo info) {
final ActivityDisplay display =
- TestActivityDisplay.create(mWm.mAtmService.mStackSupervisor, info);
- mWm.mAtmService.mRootActivityContainer.addChild(display, POSITION_TOP);
+ new TestActivityDisplay.Builder(mWm.mAtmService, info).build();
return display.mDisplayContent;
}
diff --git a/services/usage/java/com/android/server/usage/IntervalStats.java b/services/usage/java/com/android/server/usage/IntervalStats.java
index 8fb283a..46b261b 100644
--- a/services/usage/java/com/android/server/usage/IntervalStats.java
+++ b/services/usage/java/com/android/server/usage/IntervalStats.java
@@ -448,11 +448,8 @@
/**
* Parses all of the tokens to strings in the obfuscated usage stats data. This includes
* deobfuscating each of the package tokens and chooser actions and categories.
- *
- * @return {@code true} if any stats were omitted while deobfuscating, {@code false} otherwise.
*/
- private boolean deobfuscateUsageStats(PackagesTokenData packagesTokenData) {
- boolean dataOmitted = false;
+ private void deobfuscateUsageStats(PackagesTokenData packagesTokenData) {
final int usageStatsSize = packageStatsObfuscated.size();
for (int statsIndex = 0; statsIndex < usageStatsSize; statsIndex++) {
final int packageToken = packageStatsObfuscated.keyAt(statsIndex);
@@ -460,7 +457,6 @@
usageStats.mPackageName = packagesTokenData.getPackageString(packageToken);
if (usageStats.mPackageName == null) {
Slog.e(TAG, "Unable to parse usage stats package " + packageToken);
- dataOmitted = true;
continue;
}
@@ -493,18 +489,14 @@
}
packageStats.put(usageStats.mPackageName, usageStats);
}
- return dataOmitted;
}
/**
* Parses all of the tokens to strings in the obfuscated events data. This includes
* deobfuscating the package token, along with any class, task root package/class tokens, and
* shortcut or notification channel tokens.
- *
- * @return {@code true} if any events were omitted while deobfuscating, {@code false} otherwise.
*/
- private boolean deobfuscateEvents(PackagesTokenData packagesTokenData) {
- boolean dataOmitted = false;
+ private void deobfuscateEvents(PackagesTokenData packagesTokenData) {
for (int i = this.events.size() - 1; i >= 0; i--) {
final Event event = this.events.get(i);
final int packageToken = event.mPackageToken;
@@ -512,7 +504,6 @@
if (event.mPackage == null) {
Slog.e(TAG, "Unable to parse event package " + packageToken);
this.events.remove(i);
- dataOmitted = true;
continue;
}
@@ -552,7 +543,6 @@
Slog.e(TAG, "Unable to parse shortcut " + event.mShortcutIdToken
+ " for package " + packageToken);
this.events.remove(i);
- dataOmitted = true;
continue;
}
break;
@@ -564,25 +554,21 @@
+ event.mNotificationChannelIdToken + " for package "
+ packageToken);
this.events.remove(i);
- dataOmitted = true;
continue;
}
break;
}
}
- return dataOmitted;
}
/**
* Parses the obfuscated tokenized data held in this interval stats object.
*
- * @return {@code true} if any data was omitted while deobfuscating, {@code false} otherwise.
* @hide
*/
- public boolean deobfuscateData(PackagesTokenData packagesTokenData) {
- final boolean statsOmitted = deobfuscateUsageStats(packagesTokenData);
- final boolean eventsOmitted = deobfuscateEvents(packagesTokenData);
- return statsOmitted || eventsOmitted;
+ public void deobfuscateData(PackagesTokenData packagesTokenData) {
+ deobfuscateUsageStats(packagesTokenData);
+ deobfuscateEvents(packagesTokenData);
}
/**
diff --git a/services/usage/java/com/android/server/usage/PackagesTokenData.java b/services/usage/java/com/android/server/usage/PackagesTokenData.java
index f19abbb..4bf08a4 100644
--- a/services/usage/java/com/android/server/usage/PackagesTokenData.java
+++ b/services/usage/java/com/android/server/usage/PackagesTokenData.java
@@ -162,18 +162,15 @@
*
* @param packageName the package to be removed
* @param timeRemoved the time stamp of when the package was removed
- * @return the token mapped to the package removed or {@code PackagesTokenData.UNASSIGNED_TOKEN}
- * if not mapped
*/
- public int removePackage(String packageName, long timeRemoved) {
+ public void removePackage(String packageName, long timeRemoved) {
removedPackagesMap.put(packageName, timeRemoved);
if (!packagesToTokensMap.containsKey(packageName)) {
- return UNASSIGNED_TOKEN;
+ return;
}
final int packageToken = packagesToTokensMap.get(packageName).get(packageName);
packagesToTokensMap.remove(packageName);
tokensToPackagesMap.delete(packageToken);
- return packageToken;
}
}
diff --git a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
index ce29527..27d7360 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsDatabase.java
@@ -52,7 +52,6 @@
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
import java.util.ArrayList;
-import java.util.HashMap;
import java.util.List;
/**
@@ -123,7 +122,6 @@
private int mCurrentVersion;
private boolean mFirstUpdate;
private boolean mNewUpdate;
- private boolean mUpgradePerformed;
// The obfuscated packages to tokens mappings file
private final File mPackageMappingsFile;
@@ -327,13 +325,6 @@
return mNewUpdate;
}
- /**
- * Was an upgrade performed when this database was initialized?
- */
- boolean wasUpgradePerformed() {
- return mUpgradePerformed;
- }
-
private void checkVersionAndBuildLocked() {
int version;
String buildFingerprint;
@@ -406,8 +397,6 @@
if (mUpdateBreadcrumb.exists()) {
// Files should be up to date with current version. Clear the version update breadcrumb
mUpdateBreadcrumb.delete();
- // update mUpgradePerformed after breadcrumb is deleted to indicate a successful upgrade
- mUpgradePerformed = true;
}
if (mBackupsDir.exists() && !KEEP_BACKUP_DIR) {
@@ -556,119 +545,12 @@
}
}
- /**
- * Returns the token mapped to the package removed or {@code PackagesTokenData.UNASSIGNED_TOKEN}
- * if not mapped.
- */
- int onPackageRemoved(String packageName, long timeRemoved) {
+ void onPackageRemoved(String packageName, long timeRemoved) {
synchronized (mLock) {
- return mPackagesTokenData.removePackage(packageName, timeRemoved);
+ mPackagesTokenData.removePackage(packageName, timeRemoved);
}
}
- /**
- * Reads all the usage stats data on disk and rewrites it with any data related to uninstalled
- * packages omitted.
- */
- boolean pruneUninstalledPackagesData() {
- synchronized (mLock) {
- for (int i = 0; i < mIntervalDirs.length; i++) {
- final File[] files = mIntervalDirs[i].listFiles();
- if (files == null) {
- continue;
- }
- for (int j = 0; j < files.length; j++) {
- try {
- final IntervalStats stats = new IntervalStats();
- final AtomicFile atomicFile = new AtomicFile(files[j]);
- if (!readLocked(atomicFile, stats, mCurrentVersion, mPackagesTokenData)) {
- continue; // no data was omitted when read so no need to rewrite
- }
- // Any data related to packages that have been removed would have failed
- // the deobfuscation step on read so the IntervalStats object here only
- // contains data for packages that are currently installed - all we need
- // to do here is write the data back to disk.
- writeLocked(atomicFile, stats, mCurrentVersion, mPackagesTokenData);
- } catch (Exception e) {
- Slog.e(TAG, "Failed to prune data from: " + files[j].toString());
- return false;
- }
- }
- }
- try {
- writeMappingsLocked();
- } catch (IOException e) {
- Slog.e(TAG, "Failed to write package mappings after pruning data.");
- return false;
- }
- return true;
- }
- }
-
- /**
- * Iterates through all the files on disk and prunes any data that belongs to packages that have
- * been uninstalled (packages that are not in the given list).
- * Note: this should only be called once, when there has been a database upgrade.
- *
- * @param installedPackages map of installed packages (package_name:package_install_time)
- */
- void prunePackagesDataOnUpgrade(HashMap<String, Long> installedPackages) {
- if (installedPackages == null || installedPackages.isEmpty()) {
- return;
- }
- synchronized (mLock) {
- for (int i = 0; i < mIntervalDirs.length; i++) {
- final File[] files = mIntervalDirs[i].listFiles();
- if (files == null) {
- continue;
- }
- for (int j = 0; j < files.length; j++) {
- try {
- final IntervalStats stats = new IntervalStats();
- final AtomicFile atomicFile = new AtomicFile(files[j]);
- readLocked(atomicFile, stats, mCurrentVersion, mPackagesTokenData);
- if (!pruneStats(installedPackages, stats)) {
- continue; // no stats were pruned so no need to rewrite
- }
- writeLocked(atomicFile, stats, mCurrentVersion, mPackagesTokenData);
- } catch (Exception e) {
- Slog.e(TAG, "Failed to prune data from: " + files[j].toString());
- }
- }
- }
- }
- }
-
- private boolean pruneStats(HashMap<String, Long> installedPackages, IntervalStats stats) {
- boolean dataPruned = false;
-
- // prune old package usage stats
- for (int i = stats.packageStats.size() - 1; i >= 0; i--) {
- final UsageStats usageStats = stats.packageStats.valueAt(i);
- final Long timeInstalled = installedPackages.get(usageStats.mPackageName);
- if (timeInstalled == null || timeInstalled > usageStats.mEndTimeStamp) {
- stats.packageStats.removeAt(i);
- dataPruned = true;
- }
- }
- if (dataPruned) {
- // ensure old stats don't linger around during the obfuscation step on write
- stats.packageStatsObfuscated.clear();
- }
-
- // prune old events
- for (int i = stats.events.size() - 1; i >= 0; i--) {
- final UsageEvents.Event event = stats.events.get(i);
- final Long timeInstalled = installedPackages.get(event.mPackage);
- if (timeInstalled == null || timeInstalled > event.mTimeStamp) {
- stats.events.remove(i);
- dataPruned = true;
- }
- }
-
- return dataPruned;
- }
-
public void onTimeChanged(long timeDiffMillis) {
synchronized (mLock) {
StringBuilder logBuilder = new StringBuilder();
@@ -763,6 +645,7 @@
}
// filter out events
+ final int eventsSize = stats.events.size();
for (int i = stats.events.size() - 1; i >= 0; i--) {
final UsageEvents.Event event = stats.events.get(i);
final Long timeRemoved = removedPackagesMap.get(event.mPackage);
@@ -1059,17 +942,13 @@
readLocked(file, statsOut, mCurrentVersion, mPackagesTokenData);
}
- /**
- * Returns {@code true} if any stats were omitted while reading, {@code false} otherwise.
- */
- private static boolean readLocked(AtomicFile file, IntervalStats statsOut, int version,
+ private static void readLocked(AtomicFile file, IntervalStats statsOut, int version,
PackagesTokenData packagesTokenData) throws IOException {
- boolean dataOmitted = false;
try {
FileInputStream in = file.openRead();
try {
statsOut.beginTime = parseBeginTime(file);
- dataOmitted = readLocked(in, statsOut, version, packagesTokenData);
+ readLocked(in, statsOut, version, packagesTokenData);
statsOut.lastTimeSaved = file.getLastModifiedTime();
} finally {
try {
@@ -1082,15 +961,10 @@
Slog.e(TAG, "UsageStatsDatabase", e);
throw e;
}
- return dataOmitted;
}
- /**
- * Returns {@code true} if any stats were omitted while reading, {@code false} otherwise.
- */
- private static boolean readLocked(InputStream in, IntervalStats statsOut, int version,
+ private static void readLocked(InputStream in, IntervalStats statsOut, int version,
PackagesTokenData packagesTokenData) throws IOException {
- boolean dataOmitted = false;
switch (version) {
case 1:
case 2:
@@ -1115,14 +989,14 @@
} catch (IOException e) {
Slog.e(TAG, "Unable to read interval stats from proto.", e);
}
- dataOmitted = statsOut.deobfuscateData(packagesTokenData);
+ statsOut.deobfuscateData(packagesTokenData);
break;
default:
throw new RuntimeException(
"Unhandled UsageStatsDatabase version: " + Integer.toString(version)
+ " on read.");
}
- return dataOmitted;
+
}
/**
diff --git a/services/usage/java/com/android/server/usage/UsageStatsIdleService.java b/services/usage/java/com/android/server/usage/UsageStatsIdleService.java
deleted file mode 100644
index 8677779..0000000
--- a/services/usage/java/com/android/server/usage/UsageStatsIdleService.java
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2019 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.usage;
-
-import android.app.job.JobInfo;
-import android.app.job.JobParameters;
-import android.app.job.JobScheduler;
-import android.app.job.JobService;
-import android.app.usage.UsageStatsManagerInternal;
-import android.content.ComponentName;
-import android.content.Context;
-import android.os.AsyncTask;
-import android.os.PersistableBundle;
-
-import com.android.server.LocalServices;
-
-/**
- * JobService used to do any work for UsageStats while the device is idle.
- */
-public class UsageStatsIdleService extends JobService {
-
- /**
- * Base job ID for the pruning job - must be unique within the system server uid.
- */
- private static final int PRUNE_JOB_ID = 546357475;
-
- private static final String USER_ID_KEY = "user_id";
- private static final String REMOVED_TOKENS_KEY = "removed_tokens";
-
- static void scheduleJob(Context context, int userId, int token) {
- final int userJobId = PRUNE_JOB_ID + userId; // unique job id per user
- final ComponentName component = new ComponentName(context.getPackageName(),
- UsageStatsIdleService.class.getName());
- final PersistableBundle bundle = new PersistableBundle();
- bundle.putInt(USER_ID_KEY, userId);
- bundle.putIntArray(REMOVED_TOKENS_KEY,
- getOrCreateRemovedTokens(fetchRemovedTokens(context, userId), token));
- final JobInfo pruneJob = new JobInfo.Builder(userJobId, component)
- .setRequiresDeviceIdle(true)
- .setExtras(bundle)
- .setPersisted(true)
- .build();
-
- final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
- jobScheduler.schedule(pruneJob);
- }
-
- static void cancelJob(Context context, int userId) {
- final int userJobId = PRUNE_JOB_ID + userId; // unique job id per user
- final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
- jobScheduler.cancel(userJobId);
- }
-
- /**
- * Fetches an array of removed tokens from previous prune jobs, if any.
- */
- static int[] fetchRemovedTokens(Context context, int userId) {
- final JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
- final int userJobId = PRUNE_JOB_ID + userId; // unique job id per user
- final JobInfo pendingJob = jobScheduler.getPendingJob(userJobId);
- if (pendingJob != null) {
- final PersistableBundle bundle = pendingJob.getExtras();
- return bundle.getIntArray(REMOVED_TOKENS_KEY);
- }
- return null;
- }
-
- @Override
- public boolean onStartJob(JobParameters params) {
- final PersistableBundle bundle = params.getExtras();
- final int userId = bundle.getInt(USER_ID_KEY, -1);
- if (userId == -1) {
- return false;
- }
-
- AsyncTask.execute(() -> {
- final UsageStatsManagerInternal usageStatsManagerInternal = LocalServices.getService(
- UsageStatsManagerInternal.class);
- final boolean pruned = usageStatsManagerInternal.pruneUninstalledPackagesData(userId);
- jobFinished(params, !pruned); // reschedule if data was not pruned
- });
- return true;
- }
-
- @Override
- public boolean onStopJob(JobParameters params) {
- // Since the pruning job isn't a heavy job, we don't want to cancel it's execution midway.
- return false;
- }
-
- /**
- * Helper method to create a cloned array of removed tokens from previous jobs (if any) with
- * the newly removed token at index 0. If there are no removed tokens from previous jobs, it
- * simply returns a new array containing the current token.
- */
- private static int[] getOrCreateRemovedTokens(int[] previousRemovedTokens, int token) {
- final int[] removedTokens;
- if (previousRemovedTokens == null) {
- removedTokens = new int[1];
- } else {
- removedTokens = new int[previousRemovedTokens.length + 1];
- System.arraycopy(previousRemovedTokens, 0, removedTokens, 1,
- previousRemovedTokens.length);
- }
- removedTokens[0] = token;
- return removedTokens;
- }
-}
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 5f5e7e8..f9b3659 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -846,8 +846,6 @@
mUserState.remove(userId);
mAppStandby.onUserRemoved(userId);
mAppTimeLimit.onUserRemoved(userId);
- // Cancel any scheduled jobs for this user since the user is being removed.
- UsageStatsIdleService.cancelJob(getContext(), userId);
}
}
@@ -857,7 +855,7 @@
private void onPackageRemoved(int userId, String packageName) {
synchronized (mLock) {
final long timeRemoved = System.currentTimeMillis();
- if (!mUserUnlockedStates.get(userId)) {
+ if (!mUserUnlockedStates.get(userId, false)) {
// If user is not unlocked and a package is removed for them, we will handle it
// when the user service is initialized and package manager is queried.
return;
@@ -874,24 +872,6 @@
/**
* Called by the Binder stub.
*/
- private boolean pruneUninstalledPackagesData(int userId) {
- synchronized (mLock) {
- if (!mUserUnlockedStates.get(userId)) {
- return false; // user is no longer unlocked
- }
-
- final UserUsageStatsService userService = mUserState.get(userId);
- if (userService == null) {
- return false; // user was stopped or removed
- }
-
- return userService.pruneUninstalledPackagesData();
- }
- }
-
- /**
- * Called by the Binder stub.
- */
List<UsageStats> queryUsageStats(int userId, int bucketType, long beginTime, long endTime,
boolean obfuscateInstantApps) {
synchronized (mLock) {
@@ -2144,11 +2124,6 @@
public AppUsageLimitData getAppUsageLimit(String packageName, UserHandle user) {
return mAppTimeLimit.getAppUsageLimit(packageName, user);
}
-
- @Override
- public boolean pruneUninstalledPackagesData(int userId) {
- return UsageStatsService.this.pruneUninstalledPackagesData(userId);
- }
}
private class MyPackageMonitor extends PackageMonitor {
diff --git a/services/usage/java/com/android/server/usage/UserUsageStatsService.java b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
index d30f2ad..5783932 100644
--- a/services/usage/java/com/android/server/usage/UserUsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UserUsageStatsService.java
@@ -34,9 +34,10 @@
import android.app.usage.UsageStats;
import android.app.usage.UsageStatsManager;
import android.content.Context;
-import android.content.pm.PackageInfo;
-import android.content.pm.PackageManager;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageManagerInternal;
import android.content.res.Configuration;
+import android.os.Process;
import android.os.SystemClock;
import android.text.format.DateUtils;
import android.util.ArrayMap;
@@ -46,6 +47,7 @@
import android.util.SparseIntArray;
import com.android.internal.util.IndentingPrintWriter;
+import com.android.server.LocalServices;
import com.android.server.usage.UsageStatsDatabase.StatCombiner;
import java.io.File;
@@ -53,7 +55,7 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
/**
@@ -113,9 +115,6 @@
void init(final long currentTimeMillis) {
readPackageMappingsLocked();
mDatabase.init(currentTimeMillis);
- if (mDatabase.wasUpgradePerformed()) {
- mDatabase.prunePackagesDataOnUpgrade(getInstalledPackages());
- }
int nullCount = 0;
for (int i = 0; i < mCurrentStats.length; i++) {
@@ -176,68 +175,51 @@
}
void onPackageRemoved(String packageName, long timeRemoved) {
- final int token = mDatabase.onPackageRemoved(packageName, timeRemoved);
- if (token != PackagesTokenData.UNASSIGNED_TOKEN) {
- UsageStatsIdleService.scheduleJob(mContext, mUserId, token);
- }
+ mDatabase.onPackageRemoved(packageName, timeRemoved);
}
private void readPackageMappingsLocked() {
mDatabase.readMappingsLocked();
- updatePackageMappingsLocked();
+ cleanUpPackageMappingsLocked();
}
/**
- * Queries Job Scheduler for any pending data prune jobs and if any exist, it updates the
- * package mappings in memory by removing those tokens.
+ * Queries Package Manager for a list of installed packages and removes those packages from
+ * mPackagesTokenData which are not installed any more.
* This will only happen once per device boot, when the user is unlocked for the first time.
*/
- private void updatePackageMappingsLocked() {
+ private void cleanUpPackageMappingsLocked() {
final long timeNow = System.currentTimeMillis();
- final int[] removedTokens = UsageStatsIdleService.fetchRemovedTokens(mContext, mUserId);
- if (removedTokens == null) {
+ /*
+ Note (b/142501248): PackageManagerInternal#getInstalledApplications is not lightweight.
+ Once its implementation is updated, or it's replaced with a better alternative, update
+ the call here to use it. For now, using the heavy #getInstalledApplications is okay since
+ this clean-up is only performed once every boot.
+ */
+ final PackageManagerInternal packageManagerInternal =
+ LocalServices.getService(PackageManagerInternal.class);
+ if (packageManagerInternal == null) {
return;
}
-
- for (int i = removedTokens.length - 1; i >= 0; i--) {
- final String packageName =
- mDatabase.mPackagesTokenData.getPackageString(removedTokens[i]);
- if (packageName == null) {
- continue;
- }
- /*
- Note: in most cases, packageName returned will be null since the package mappings file
- on disk should have been updated when it was last persisted. This is to handle the rare
- case of system crashing after a package was removed but the package mappings file
- wasn't persisted to disk.
- */
- mDatabase.mPackagesTokenData.removePackage(packageName, timeNow);
- }
- }
-
- /**
- * Fetches a map of package names to their install times. This includes all installed packages,
- * including those packages which have been uninstalled with the DONT_DELETE_DATA flag.
- * Note: this is supposed be a helper method which is only used on database upgrades - it should
- * not be called otherwise since it's implementation performs a heavy query to package manager.
- */
- private HashMap<String, Long> getInstalledPackages() {
- final PackageManager packageManager = mContext.getPackageManager();
- if (packageManager == null) {
- return null;
- }
- final List<PackageInfo> installedPackages = packageManager.getInstalledPackagesAsUser(
- PackageManager.MATCH_UNINSTALLED_PACKAGES, mUserId);
- final HashMap<String, Long> packagesMap = new HashMap<>();
+ final List<ApplicationInfo> installedPackages =
+ packageManagerInternal.getInstalledApplications(0, mUserId, Process.SYSTEM_UID);
+ // convert the package list to a set for easy look-ups
+ final HashSet<String> packagesSet = new HashSet<>(installedPackages.size());
for (int i = installedPackages.size() - 1; i >= 0; i--) {
- final PackageInfo packageInfo = installedPackages.get(i);
- packagesMap.put(packageInfo.packageName, packageInfo.firstInstallTime);
+ packagesSet.add(installedPackages.get(i).packageName);
}
- return packagesMap;
- }
+ final List<String> removedPackages = new ArrayList<>();
+ // populate list of packages that are found in the mappings but not in the installed list
+ for (int i = mDatabase.mPackagesTokenData.packagesToTokensMap.size() - 1; i >= 0; i--) {
+ if (!packagesSet.contains(mDatabase.mPackagesTokenData.packagesToTokensMap.keyAt(i))) {
+ removedPackages.add(mDatabase.mPackagesTokenData.packagesToTokensMap.keyAt(i));
+ }
+ }
- boolean pruneUninstalledPackagesData() {
- return mDatabase.pruneUninstalledPackagesData();
+ // remove packages in the mappings that are no longer installed
+ for (int i = removedPackages.size() - 1; i >= 0; i--) {
+ mDatabase.mPackagesTokenData.removePackage(removedPackages.get(i), timeNow);
+ }
}
private void onTimeChanged(long oldTime, long newTime) {
diff --git a/wifi/java/android/net/wifi/RttManager.java b/wifi/java/android/net/wifi/RttManager.java
index 6a03c73..73c52ab 100644
--- a/wifi/java/android/net/wifi/RttManager.java
+++ b/wifi/java/android/net/wifi/RttManager.java
@@ -1212,7 +1212,7 @@
*
* @hide
*/
- public RttManager(Context context, WifiRttManager service) {
+ public RttManager(@NonNull Context context, @NonNull WifiRttManager service) {
mNewService = service;
mContext = context;
diff --git a/wifi/java/android/net/wifi/WifiFrameworkInitializer.java b/wifi/java/android/net/wifi/WifiFrameworkInitializer.java
new file mode 100644
index 0000000..775043a
--- /dev/null
+++ b/wifi/java/android/net/wifi/WifiFrameworkInitializer.java
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2019 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.net.wifi;
+
+import android.annotation.SystemApi;
+import android.app.SystemServiceRegistry;
+import android.content.Context;
+import android.net.wifi.aware.IWifiAwareManager;
+import android.net.wifi.aware.WifiAwareManager;
+import android.net.wifi.p2p.IWifiP2pManager;
+import android.net.wifi.p2p.WifiP2pManager;
+import android.net.wifi.rtt.IWifiRttManager;
+import android.net.wifi.rtt.WifiRttManager;
+import android.os.HandlerThread;
+import android.os.Looper;
+
+/**
+ * Class for performing registration for all Wifi services.
+ *
+ * @hide
+ */
+@SystemApi
+public class WifiFrameworkInitializer {
+
+ /**
+ * A class implementing the lazy holder idiom: the unique static instance
+ * of {@link #INSTANCE} is instantiated in a thread-safe way (guaranteed by
+ * the language specs) the first time that NoPreloadHolder is referenced in getInstanceLooper().
+ *
+ * This is necessary because we can't spawn a new thread in {@link #registerServiceWrappers()}.
+ * {@link #registerServiceWrappers()} is called during the Zygote phase, which disallows
+ * spawning new threads. Naming the class "NoPreloadHolder" ensures that the classloader will
+ * not preload this class, inadvertently spawning the thread too early.
+ */
+ private static class NoPreloadHolder {
+ private static final HandlerThread INSTANCE = createInstance();
+
+ private static HandlerThread createInstance() {
+ HandlerThread thread = new HandlerThread("WifiManagerThread");
+ thread.start();
+ return thread;
+ }
+ }
+
+ private static Looper getInstanceLooper() {
+ return NoPreloadHolder.INSTANCE.getLooper();
+ }
+
+ private WifiFrameworkInitializer() {}
+
+ /**
+ * Called by {@link SystemServiceRegistry}'s static initializer and registers all Wifi services
+ * to {@link Context}, so that {@link Context#getSystemService} can return them.
+ *
+ * @throws IllegalStateException if this is called from anywhere besides
+ * {@link SystemServiceRegistry}
+ */
+ public static void registerServiceWrappers() {
+ SystemServiceRegistry.registerContextAwareService(
+ Context.WIFI_SERVICE,
+ WifiManager.class,
+ context -> new WifiManager(context, getInstanceLooper())
+ );
+ SystemServiceRegistry.registerStaticService(
+ Context.WIFI_P2P_SERVICE,
+ WifiP2pManager.class,
+ serviceBinder -> {
+ IWifiP2pManager service = IWifiP2pManager.Stub.asInterface(serviceBinder);
+ return new WifiP2pManager(service);
+ }
+ );
+ SystemServiceRegistry.registerContextAwareService(
+ Context.WIFI_AWARE_SERVICE,
+ WifiAwareManager.class,
+ (context, serviceBinder) -> {
+ IWifiAwareManager service = IWifiAwareManager.Stub.asInterface(serviceBinder);
+ return new WifiAwareManager(context, service);
+ }
+ );
+ SystemServiceRegistry.registerContextAwareService(
+ Context.WIFI_SCANNING_SERVICE,
+ WifiScanner.class,
+ (context, serviceBinder) -> {
+ IWifiScanner service = IWifiScanner.Stub.asInterface(serviceBinder);
+ return new WifiScanner(context, service, getInstanceLooper());
+ }
+ );
+ SystemServiceRegistry.registerContextAwareService(
+ Context.WIFI_RTT_SERVICE,
+ RttManager.class,
+ (context, serviceBinder) -> {
+ IWifiRttManager service = IWifiRttManager.Stub.asInterface(serviceBinder);
+ WifiRttManager wifiRttManager = new WifiRttManager(context, service);
+ return new RttManager(context, wifiRttManager);
+ }
+ );
+ SystemServiceRegistry.registerContextAwareService(
+ Context.WIFI_RTT_RANGING_SERVICE,
+ WifiRttManager.class,
+ (context, serviceBinder) -> {
+ IWifiRttManager service = IWifiRttManager.Stub.asInterface(serviceBinder);
+ return new WifiRttManager(context, service);
+ }
+ );
+ }
+}
diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java
index 77666b0..942d795 100644
--- a/wifi/java/android/net/wifi/WifiManager.java
+++ b/wifi/java/android/net/wifi/WifiManager.java
@@ -1213,11 +1213,13 @@
* Applications will almost always want to use
* {@link android.content.Context#getSystemService Context.getSystemService()} to retrieve
* the standard {@link android.content.Context#WIFI_SERVICE Context.WIFI_SERVICE}.
+ *
* @param context the application context
- * @hide - hide this because it takes in a parameter of type IWifiManager, which
- * is a system private class.
+ * @param looper the Looper used to deliver callbacks
+ *
+ * @hide
*/
- public WifiManager(Context context, Looper looper) {
+ public WifiManager(@NonNull Context context, @NonNull Looper looper) {
mContext = context;
mLooper = looper;
mTargetSdkVersion = context.getApplicationInfo().targetSdkVersion;
diff --git a/wifi/java/android/net/wifi/WifiScanner.java b/wifi/java/android/net/wifi/WifiScanner.java
index 0d36718..0de5066 100644
--- a/wifi/java/android/net/wifi/WifiScanner.java
+++ b/wifi/java/android/net/wifi/WifiScanner.java
@@ -789,12 +789,11 @@
/**
* Enable/Disable wifi scanning.
- * Note: WifiService calls this after any client interface mode changes (i.e. a new interface
- * set up or an existing interface torn down)
- * If there are >= 1 active client interface, invoke setScanningEnabled(true)
- * If there are 0 active client interface, invoke setScanningEnabled(false)
+ *
+ * @param enable set to true to enable scanning, set to false to disable all types of scanning.
* {@hide}
*/
+ @SystemApi
@RequiresPermission(Manifest.permission.NETWORK_STACK)
public void setScanningEnabled(boolean enable) {
validateChannel();
@@ -1291,12 +1290,15 @@
* Applications will almost always want to use
* {@link android.content.Context#getSystemService Context.getSystemService()} to retrieve
* the standard {@link android.content.Context#WIFI_SERVICE Context.WIFI_SERVICE}.
+ *
* @param context the application context
- * @param service the Binder interface
+ * @param service the Binder interface for {@link Context#WIFI_SCANNING_SERVICE}
* @param looper the Looper used to deliver callbacks
+ *
* @hide
*/
- public WifiScanner(Context context, IWifiScanner service, Looper looper) {
+ public WifiScanner(@NonNull Context context, @NonNull IWifiScanner service,
+ @NonNull Looper looper) {
mContext = context;
mService = service;
diff --git a/wifi/java/android/net/wifi/aware/WifiAwareManager.java b/wifi/java/android/net/wifi/aware/WifiAwareManager.java
index 5aab347..7b37d65 100644
--- a/wifi/java/android/net/wifi/aware/WifiAwareManager.java
+++ b/wifi/java/android/net/wifi/aware/WifiAwareManager.java
@@ -158,7 +158,7 @@
private final Object mLock = new Object(); // lock access to the following vars
/** @hide */
- public WifiAwareManager(Context context, IWifiAwareManager service) {
+ public WifiAwareManager(@NonNull Context context, @NonNull IWifiAwareManager service) {
mContext = context;
mService = service;
}
diff --git a/wifi/java/android/net/wifi/rtt/WifiRttManager.java b/wifi/java/android/net/wifi/rtt/WifiRttManager.java
index 770a120..cb0c5d4 100644
--- a/wifi/java/android/net/wifi/rtt/WifiRttManager.java
+++ b/wifi/java/android/net/wifi/rtt/WifiRttManager.java
@@ -77,7 +77,7 @@
"android.net.wifi.rtt.action.WIFI_RTT_STATE_CHANGED";
/** @hide */
- public WifiRttManager(Context context, IWifiRttManager service) {
+ public WifiRttManager(@NonNull Context context, @NonNull IWifiRttManager service) {
mContext = context;
mService = service;
}