diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 06f72033119..33563405da3 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -3639,7 +3639,7 @@
"የስራ ፈተና፣ ስራ፣ መገለጫ"
"የሥራ መገለጫ፣ የሚተዳደር መገለጫ፣ አዋህድ፣ ውህደት፣ ሥራ፣ መገለጫ"
"የጣት ምልክቶች"
- "የኪስ ቦርሳ"
+ "Wallet"
"ይክፈሉ፣ መታ ያድርጉ፣ ክፍያዎች"
"ምትኬ"
"የጣት ምልክት"
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 46f39a5d393..a2de16868b6 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -2304,7 +2304,7 @@
"Talkback"
"صفحهخوان در وهله اول برای افراد نابینا و کمبینا در نظر گرفته شده است"
"روی موارد موجود در صفحهتان ضربه بزنید تا بلند خوانده شوند"
- "اولویتهای زیرنویس"
+ "اولویتهای زیرنویس ناشنوایان"
"درباره اولویتهای زیرنویس ناشنوایان"
"درباره اولویتهای زیرنویس ناشنوایان بیشتر بدانید"
"بزرگنمایی"
@@ -2508,7 +2508,7 @@
"کلیدهای میزان صدا را نگهدارید"
"سه ضربه روی صفحه بزنید"
"ادامه"
- "سمعکها"
+ "سمعک"
"هیچ سمعکی متصل نشده است"
"افزودن سمعکها"
"مرتبط کردن سمعک"
@@ -4915,7 +4915,7 @@
"باز کردن سریع دوربین"
"برای باز کردن سریع دوربین، دکمه روشن/خاموش را دو بار فشار دهید. در همه صفحهها کار میکند."
"باز کردن سریع دوربین"
- "خودگرفت با چرخش دوربین"
+ "خودگرفت با چرخاندن دوربین"
"سریعتر گرفتن خودگرفت"
"پیمایش سیستمی"
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 98876059bb9..b81b5d113ba 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -1411,11 +1411,11 @@
"S\'active à l\'heure choisie"
"S\'active à l\'heure du coucher"
"État"
- "Ne s\'active jamais automatiquement"
+ "Ne s\'activera jamais automatiquement"
"S\'active automatiquement au coucher du soleil"
"S\'active automatiquement à %1$s"
"S\'active automatiquement à l\'heure du coucher"
- "Ne jamais désactiver automatiquement"
+ "Ne se désactivera jamais automatiquement"
"Désactiver automatiquement au lever du soleil"
"Désactiver automatiquement à %1$s"
"Se désactive automatiquement après l\'heure du coucher"
diff --git a/res/values-in/arrays.xml b/res/values-in/arrays.xml
index de50015ff3b..18178f84ba8 100644
--- a/res/values-in/arrays.xml
+++ b/res/values-in/arrays.xml
@@ -428,7 +428,7 @@
- "Besar"
- - "PPTP VPN"
+ - "VPN PPTP"
- "L2TP/IPSec VPN dengan kunci pra-bagi"
- "L2TP/IPSec VPN dengan sertifikat"
- "IPSec VPN dengan kunci pra-bagi dan autentikasi Xauth"
diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml
index adbc49a81ec..61bac519324 100644
--- a/res/values-ml/strings.xml
+++ b/res/values-ml/strings.xml
@@ -4204,7 +4204,7 @@
"എല്ലാ കോളുകളും നിങ്ങൾക്ക് ലഭിക്കും"
"{count,plural, =0{ഒന്നുമില്ല}=1{ഒരു കോൺടാക്റ്റ്}other{# കോൺടാക്റ്റുകൾ}}"
"ആർക്കും വിളിക്കാം"
- "കോൺടാക്റ്റുകൾ"
+ "Contacts"
"നക്ഷത്രചിഹ്നമിട്ടവ"
"ചില ആളുകളോ സംഭാഷണങ്ങളോ"
"നക്ഷത്രമിട്ടിട്ടുള്ള കോൺടാക്റ്റുകളിൽ നിന്നും ആവർത്തിച്ച് വിളിക്കുന്നവരിൽ നിന്നും"
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index 34e2a80d955..bdc1993b283 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -4853,7 +4853,7 @@
"corte de tela, entalhe"
"Padrão do dispositivo"
"Falha ao aplicar sobreposição"
- "Acesso especial a apps"
+ "Acesso especial para apps"
- %d app pode usar dados ilimitados
- %d apps podem usar dados ilimitados
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 34e2a80d955..bdc1993b283 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -4853,7 +4853,7 @@
"corte de tela, entalhe"
"Padrão do dispositivo"
"Falha ao aplicar sobreposição"
- "Acesso especial a apps"
+ "Acesso especial para apps"
- %d app pode usar dados ilimitados
- %d apps podem usar dados ilimitados
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 44d82dc279f..8b484a0c96e 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -1472,7 +1472,7 @@
"Главный экран, заблокированный экран"
"По умолчанию"
"Пользовательские"
- "Сменить обои"
+ "Обои"
"Выберите обои для экрана"
"Установка обоев"
"Настройка телефона"
@@ -2385,7 +2385,7 @@
"Увеличение с помощью кнопки и по тройному нажатию"
"О функции \"%1$s\""
"Масштаб экрана и текст"
- "Настройки отображения текста"
+ "Отображение текста"
"Тема: Дизайн воздушного шара"
"От: Борис"
"Доброе утро!\n\nКак дела с дизайном? Он будет готов до того, как мы начнем разработку новых шаров?"
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index a540e2f8b93..d665c7e4b80 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -5389,7 +5389,7 @@
"Povoliť aplikácii ovládať Wi-Fi"
"Toto povolenie umožňuje tejto aplikácii zapínať a vypínať Wi-Fi, hľadať siete Wi-Fi a pripájať sa k nim, pridávať a odstraňovať siete alebo vytvárať miestny hotspot"
"Prehrať média v zariadení"
- "Prehrať %s cez"
+ "Pustiť %s cez"
"Toto zariadenie"
"Telefón"
"Tablet"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ff80b0c6976..8f7c1c26eeb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1152,11 +1152,11 @@
Fingerprint added
- Now you can use your fingerprint to unlock your tablet or verify it\u2019s you, like when you sign in to apps
+ Fingerprint Unlock improves the more you use it to unlock your tablet or verify it\u2019s you in apps
- Now you can use your fingerprint to unlock your device or verify it\u2019s you, like when you sign in to apps
+ Fingerprint Unlock improves the more you use it to unlock your device or verify it\u2019s you in apps
- Now you can use your fingerprint to unlock your phone or verify it\u2019s you, like when you sign in to apps
+ Fingerprint Unlock improves the more you use it to unlock your phone or verify it\u2019s you in apps
Do it later
diff --git a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
index 60faab932f9..7003eed252b 100644
--- a/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
+++ b/src/com/android/settings/accounts/RemoveAccountPreferenceController.java
@@ -180,10 +180,11 @@ public class RemoveAccountPreferenceController extends AbstractPreferenceControl
| AuthenticatorException e) {
// handled below
Log.w(TAG, "Remove account error: " + e);
- RemoveAccountFailureDialog.show(getTargetFragment());
}
Log.i(TAG, "failed: " + failed);
- if (!failed) {
+ if (failed) {
+ RemoveAccountFailureDialog.show(getTargetFragment());
+ } else {
targetActivity.finish();
}
}, null, mUserHandle);
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index e42574f7b6b..46ea7f42351 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -799,10 +799,12 @@ public class FingerprintSettings extends SubSettings {
public Dialog onCreateDialog(Bundle savedInstanceState) {
mFp = getArguments().getParcelable(KEY_FINGERPRINT);
final String title = getString(R.string.fingerprint_delete_title, mFp.getName());
+ final String message =
+ getString(R.string.fingerprint_v2_delete_message, mFp.getName());
mAlertDialog = new AlertDialog.Builder(getActivity())
.setTitle(title)
- .setMessage(R.string.fingerprint_delete_message)
+ .setMessage(message)
.setPositiveButton(
R.string.security_settings_fingerprint_enroll_dialog_delete,
this /* onClickListener */)
@@ -967,6 +969,10 @@ public class FingerprintSettings extends SubSettings {
final boolean isProfileChallengeUser =
getArguments().getBoolean("isProfileChallengeUser");
+ final String title = getString(R.string.fingerprint_delete_title, mFp.getName());
+ final String message =
+ getString(R.string.fingerprint_v2_delete_message, mFp.getName());
+
DevicePolicyManager devicePolicyManager =
getContext().getSystemService(DevicePolicyManager.class);
String messageId =
@@ -977,10 +983,12 @@ public class FingerprintSettings extends SubSettings {
: R.string.fingerprint_last_delete_message;
final AlertDialog alertDialog = new AlertDialog.Builder(getActivity())
- .setTitle(R.string.fingerprint_last_delete_title)
+ .setTitle(title)
.setMessage(devicePolicyManager.getResources().getString(
- messageId, () -> getContext().getString(defaultMessageId)))
- .setPositiveButton(R.string.fingerprint_last_delete_confirm,
+ messageId,
+ () -> message + "\n\n" + getContext().getString(defaultMessageId)))
+ .setPositiveButton(
+ R.string.security_settings_fingerprint_enroll_dialog_delete,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
diff --git a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
index a9ac2868878..c118a43131d 100644
--- a/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
+++ b/src/com/android/settings/bluetooth/BluetoothDeviceDetailsFragment.java
@@ -22,6 +22,7 @@ import static android.os.UserManager.DISALLOW_CONFIG_BLUETOOTH;
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
+import android.content.res.TypedArray;
import android.net.Uri;
import android.os.Bundle;
import android.provider.DeviceConfig;
@@ -49,7 +50,6 @@ import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import java.util.ArrayList;
-import java.util.IllegalFormatException;
import java.util.List;
public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment {
@@ -136,7 +136,6 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment
use(BlockingSlicePrefController.class).setSliceUri(sliceEnabled
? featureProvider.getBluetoothDeviceSettingsUri(mCachedDevice.getDevice())
: null);
- updateExtraControlUri(/* viewWidth */ 0);
}
private void updateExtraControlUri(int viewWidth) {
@@ -148,13 +147,14 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment
String uri = featureProvider.getBluetoothDeviceControlUri(mCachedDevice.getDevice());
if (!TextUtils.isEmpty(uri)) {
try {
- controlUri = Uri.parse(String.format(uri, viewWidth));
- } catch (IllegalFormatException | NullPointerException exception) {
+ controlUri = Uri.parse(uri + viewWidth);
+ } catch (NullPointerException exception) {
Log.d(TAG, "unable to parse uri");
controlUri = null;
}
}
use(SlicePreferenceController.class).setSliceUri(sliceEnabled ? controlUri : null);
+ use(SlicePreferenceController.class).onStart();
}
private final ViewTreeObserver.OnGlobalLayoutListener mOnGlobalLayoutListener =
@@ -165,7 +165,10 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment
if (view == null) {
return;
}
- updateExtraControlUri(view.getWidth());
+ if (view.getWidth() <= 0) {
+ return;
+ }
+ updateExtraControlUri(view.getWidth() - getPaddingSize());
view.getViewTreeObserver().removeOnGlobalLayoutListener(
mOnGlobalLayoutListener);
}
@@ -251,4 +254,17 @@ public class BluetoothDeviceDetailsFragment extends RestrictedDashboardFragment
}
return controllers;
}
+
+ private int getPaddingSize() {
+ TypedArray resolvedAttributes =
+ getContext().obtainStyledAttributes(
+ new int[]{
+ android.R.attr.listPreferredItemPaddingStart,
+ android.R.attr.listPreferredItemPaddingEnd
+ });
+ int width = resolvedAttributes.getDimensionPixelSize(0, 0)
+ + resolvedAttributes.getDimensionPixelSize(1, 0);
+ resolvedAttributes.recycle();
+ return width;
+ }
}
diff --git a/src/com/android/settings/panel/VolumePanel.java b/src/com/android/settings/panel/VolumePanel.java
index 98939cfe14c..08884d5621f 100644
--- a/src/com/android/settings/panel/VolumePanel.java
+++ b/src/com/android/settings/panel/VolumePanel.java
@@ -26,6 +26,7 @@ import static com.android.settings.slices.CustomSliceRegistry.VOLUME_CALL_URI;
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_MEDIA_URI;
import static com.android.settings.slices.CustomSliceRegistry.VOLUME_RINGER_URI;
+import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.bluetooth.BluetoothDevice;
import android.content.BroadcastReceiver;
@@ -49,7 +50,6 @@ import com.android.settingslib.bluetooth.LocalBluetoothProfileManager;
import com.android.settingslib.media.MediaOutputConstants;
import java.util.ArrayList;
-import java.util.IllegalFormatException;
import java.util.List;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
@@ -64,6 +64,7 @@ public class VolumePanel implements PanelContent, LifecycleObserver {
private PanelContentCallback mCallback;
private LocalBluetoothProfileManager mProfileManager;
+ private int mControlSliceWidth;
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
@@ -80,6 +81,14 @@ public class VolumePanel implements PanelContent, LifecycleObserver {
private VolumePanel(Context context) {
mContext = context.getApplicationContext();
+ if (context instanceof Activity) {
+ int panelWidth =
+ ((Activity) context).getWindowManager().getCurrentWindowMetrics().getBounds()
+ .width();
+ // The control slice width = panel width - two left and right horizontal paddings
+ mControlSliceWidth = panelWidth - context.getResources().getDimensionPixelSize(
+ R.dimen.panel_slice_Horizontal_padding) * 2;
+ }
final FutureTask localBtManagerFutureTask = new FutureTask<>(
// Avoid StrictMode ThreadPolicy violation
@@ -102,8 +111,7 @@ public class VolumePanel implements PanelContent, LifecycleObserver {
public void onResume() {
final IntentFilter filter = new IntentFilter();
filter.addAction(MediaOutputConstants.ACTION_CLOSE_PANEL);
- mContext.registerReceiver(mReceiver, filter,
- Context.RECEIVER_EXPORTED_UNAUDITED);
+ mContext.registerReceiver(mReceiver, filter, Context.RECEIVER_EXPORTED_UNAUDITED);
}
/** Invoked when the panel is paused. */
@@ -159,13 +167,11 @@ public class VolumePanel implements PanelContent, LifecycleObserver {
Uri controlUri = null;
final BluetoothDevice bluetoothDevice = findActiveDevice();
if (bluetoothDevice != null) {
- final int width = mContext.getResources().getDimensionPixelSize(
- R.dimen.settings_panel_width);
final String uri = BluetoothUtils.getControlUriMetaData(bluetoothDevice);
if (!TextUtils.isEmpty(uri)) {
try {
- controlUri = Uri.parse(String.format(uri, width));
- } catch (IllegalFormatException | NullPointerException exception) {
+ controlUri = Uri.parse(uri + mControlSliceWidth);
+ } catch (NullPointerException exception) {
Log.d(TAG, "unable to parse uri");
controlUri = null;
}