From 5d33270094130ad166c04787db4dbf549a665178 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Thu, 9 Aug 2018 12:41:29 -0700 Subject: [PATCH 1/8] Increase battery app list maximum size to 20 In P, we only show 10 app that used most battery, in some case it may make battery percentage counting inaccurate. Increase the size to mitigate this issue. Bug: 112406521 Test: Build Change-Id: I5a4ddc90d5f33af5fe66bc1129ae3ed6f8fc3fcd --- .../settings/fuelgauge/BatteryAppListPreferenceController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java index 7f0cb88fa98..7af6542232c 100644 --- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java @@ -63,7 +63,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro implements PreferenceControllerMixin, LifecycleObserver, OnPause, OnDestroy { @VisibleForTesting static final boolean USE_FAKE_DATA = false; - private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 10; + private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 20; private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10; private static final int STATS_TYPE = BatteryStats.STATS_SINCE_CHARGED; From 54a5d37190e6e3912d1bc48e196245981c3e1747 Mon Sep 17 00:00:00 2001 From: tmfang Date: Tue, 30 Oct 2018 16:49:12 +0800 Subject: [PATCH 2/8] Move LocationSettings to top level page. - Create some location icons for different scenario. - Remove Location in Security page. - Move Location Setting to top level page. Test: robotest, visual Bug: 116628158 Change-Id: I3f57ef49a396877bfbeaefea7dc4f4051e0ccc65 --- AndroidManifest.xml | 4 +- color-check-baseline.xml | 70 ++++++-- res/drawable/ic_homepage_location.xml | 36 +++++ res/drawable/ic_preference_location.xml | 36 +++++ res/drawable/ic_settings_location.xml | 3 +- res/values/colors.xml | 1 + res/values/dimens.xml | 3 + res/values/strings.xml | 8 +- res/xml/security_dashboard_settings.xml | 6 - res/xml/top_level_settings.xml | 22 ++- .../LocationPreferenceController.java | 111 ------------- .../settings/location/LocationSettings.java | 28 ---- .../settings/security/SecuritySettings.java | 2 - .../users/AppRestrictionsFragment.java | 2 +- .../LocationPreferenceControllerTest.java | 153 ------------------ 15 files changed, 156 insertions(+), 329 deletions(-) create mode 100644 res/drawable/ic_homepage_location.xml create mode 100644 res/drawable/ic_preference_location.xml delete mode 100644 src/com/android/settings/location/LocationPreferenceController.java delete mode 100644 tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java diff --git a/AndroidManifest.xml b/AndroidManifest.xml index aa98c62f49d..efa57ded87d 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1161,7 +1161,7 @@ @@ -1180,7 +1180,7 @@ diff --git a/color-check-baseline.xml b/color-check-baseline.xml index 62c7915a3d3..d28f2d131ec 100644 --- a/color-check-baseline.xml +++ b/color-check-baseline.xml @@ -1213,6 +1213,22 @@ column="5"/> + + + + @@ -1241,7 +1257,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1257,7 +1273,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1273,7 +1289,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1289,7 +1305,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1305,7 +1321,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1321,7 +1337,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1337,7 +1353,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1353,7 +1369,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1369,7 +1385,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1385,7 +1401,7 @@ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"> @@ -1853,6 +1869,38 @@ column="17"/> + + + + + + + + + + + + + + + + + + + + + diff --git a/res/drawable/ic_preference_location.xml b/res/drawable/ic_preference_location.xml new file mode 100644 index 00000000000..e37d629d404 --- /dev/null +++ b/res/drawable/ic_preference_location.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + diff --git a/res/drawable/ic_settings_location.xml b/res/drawable/ic_settings_location.xml index 34bd4f098b7..b7cfd6f2386 100644 --- a/res/drawable/ic_settings_location.xml +++ b/res/drawable/ic_settings_location.xml @@ -17,8 +17,7 @@ android:width="24.0dp" android:height="24.0dp" android:viewportWidth="24.0" - android:viewportHeight="24.0" - android:tint="?android:attr/colorControlNormal"> + android:viewportHeight="24.0"> diff --git a/res/values/colors.xml b/res/values/colors.xml index f398d9225ce..a00fd8a8b1f 100644 --- a/res/values/colors.xml +++ b/res/values/colors.xml @@ -125,6 +125,7 @@ #757575 #26459C #1A73E8 + #2EC7DC @*android:color/material_red_A700 diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 9b33388e3b7..1b07580be05 100755 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -88,6 +88,9 @@ 6dp + + 12dp + 72dp 16dp diff --git a/res/values/strings.xml b/res/values/strings.xml index 4a2443a2401..96500894868 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -814,6 +814,8 @@ Location Use location + + Scanning, location history Accounts @@ -8943,12 +8945,6 @@ %1$s is default - - On - - - Off - Back up disabled diff --git a/res/xml/security_dashboard_settings.xml b/res/xml/security_dashboard_settings.xml index e543ad92406..ce271cc4752 100644 --- a/res/xml/security_dashboard_settings.xml +++ b/res/xml/security_dashboard_settings.xml @@ -95,12 +95,6 @@ android:key="security_settings_misc_category" android:title="@string/security_passwords_title"> - - @@ -35,7 +35,7 @@ android:title="@string/connected_devices_dashboard_title" android:summary="@string/summary_placeholder" android:icon="@drawable/ic_homepage_connected_device" - android:order="-100" + android:order="-110" android:fragment="com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment" settings:controller="com.android.settings.connecteddevice.TopLevelConnectedDevicesPreferenceController"/> @@ -44,7 +44,7 @@ android:title="@string/app_and_notification_dashboard_title" android:summary="@string/app_and_notification_dashboard_summary" android:icon="@drawable/ic_homepage_apps" - android:order="-90" + android:order="-100" android:fragment="com.android.settings.applications.AppAndNotificationDashboardFragment"/> @@ -70,7 +70,7 @@ android:title="@string/sound_settings" android:summary="@string/sound_dashboard_summary" android:icon="@drawable/ic_homepage_sound" - android:order="-60" + android:order="-70" android:fragment="com.android.settings.notification.SoundSettings"/> + + buildPreferenceControllers(Context context, Lifecycle lifecycle, SecuritySettings host) { final List controllers = new ArrayList<>(); - controllers.add(new LocationPreferenceController(context, lifecycle)); controllers.add(new EnterprisePrivacyPreferenceController(context)); controllers.add(new ManageTrustAgentsPreferenceController(context)); controllers.add(new ScreenPinningPreferenceController(context)); diff --git a/src/com/android/settings/users/AppRestrictionsFragment.java b/src/com/android/settings/users/AppRestrictionsFragment.java index a4e0cff5c3a..5f899ebe8f5 100644 --- a/src/com/android/settings/users/AppRestrictionsFragment.java +++ b/src/com/android/settings/users/AppRestrictionsFragment.java @@ -450,7 +450,7 @@ public class AppRestrictionsFragment extends SettingsPreferenceFragment implemen private void addLocationAppRestrictionsPreference(AppRestrictionsHelper.SelectableAppInfo app, AppRestrictionsPreference p) { String packageName = app.packageName; - p.setIcon(R.drawable.ic_settings_location); + p.setIcon(R.drawable.ic_preference_location); p.setKey(getKeyForPackage(packageName)); ArrayList restrictions = RestrictionUtils.getRestrictions( getActivity(), mUser); diff --git a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java deleted file mode 100644 index c12fdc90f7d..00000000000 --- a/tests/robotests/src/com/android/settings/location/LocationPreferenceControllerTest.java +++ /dev/null @@ -1,153 +0,0 @@ -/* - * Copyright (C) 2017 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package com.android.settings.location; - -import static androidx.lifecycle.Lifecycle.Event.ON_PAUSE; -import static androidx.lifecycle.Lifecycle.Event.ON_RESUME; - -import static com.google.common.truth.Truth.assertThat; - -import static org.mockito.ArgumentMatchers.nullable; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import android.content.BroadcastReceiver; -import android.content.ContentResolver; -import android.content.Context; -import android.content.Intent; -import android.content.IntentFilter; -import android.location.LocationManager; -import android.provider.Settings.Secure; - -import androidx.lifecycle.LifecycleOwner; -import androidx.preference.Preference; -import androidx.preference.PreferenceScreen; - -import com.android.settings.R; -import com.android.settings.testutils.SettingsRobolectricTestRunner; -import com.android.settingslib.core.lifecycle.Lifecycle; - -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Answers; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; - -@RunWith(SettingsRobolectricTestRunner.class) -public class LocationPreferenceControllerTest { - @Mock - private Preference mPreference; - @Mock - private PreferenceScreen mScreen; - - private LifecycleOwner mLifecycleOwner; - private Lifecycle mLifecycle; - private LocationPreferenceController mController; - - @Mock(answer = Answers.RETURNS_DEEP_STUBS) - private Context mContext; - - @Before - public void setUp() { - MockitoAnnotations.initMocks(this); - mLifecycleOwner = () -> mLifecycle; - mLifecycle = new Lifecycle(mLifecycleOwner); - mController = new LocationPreferenceController(mContext, mLifecycle); - when(mScreen.findPreference(mController.getPreferenceKey())).thenReturn(mPreference); - } - - @Test - public void isAvailable_shouldReturnTrue() { - assertThat(mController.isAvailable()).isTrue(); - } - - @Test - public void updateState_shouldSetSummary() { - mController.updateState(mPreference); - - verify(mPreference).setSummary(nullable(String.class)); - } - - @Test - public void updateSummary_shouldSetSummary() { - mController.displayPreference(mScreen); - mController.updateSummary(); - - verify(mPreference).setSummary(nullable(String.class)); - } - - @Test - public void getLocationSummary_locationOff_shouldSetSummaryOff() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_OFF); - - final String locationSummary = mController.getLocationSummary(mContext); - assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_off_summary)); - } - - @Test - public void getLocationSummary_sensorsOnly_shouldSetSummaryOn() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_SENSORS_ONLY); - - final String locationSummary = mController.getLocationSummary(mContext); - assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_on_summary)); - } - - @Test - public void getLocationSummary_highAccuracy_shouldSetSummaryOn() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_HIGH_ACCURACY); - - final String locationSummary = mController.getLocationSummary(mContext); - assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_on_summary)); - } - - @Test - public void getLocationSummary_batterySaving_shouldSetSummaryOn() { - final ContentResolver contentResolver = mContext.getContentResolver(); - Secure.putInt(contentResolver, Secure.LOCATION_MODE, Secure.LOCATION_MODE_BATTERY_SAVING); - - final String locationSummary = mController.getLocationSummary(mContext); - assertThat(locationSummary).isEqualTo(mContext.getString(R.string.location_on_summary)); - } - - @Test - public void onResume_shouldRegisterObserver() { - mLifecycle.handleLifecycleEvent(ON_RESUME); - verify(mContext).registerReceiver(any(BroadcastReceiver.class), any(IntentFilter.class)); - } - - @Test - public void onPause_shouldUnregisterObserver() { - mLifecycle.handleLifecycleEvent(ON_RESUME); - mLifecycle.handleLifecycleEvent(ON_PAUSE); - verify(mContext).unregisterReceiver(any(BroadcastReceiver.class)); - } - - @Test - public void locationProvidersChangedReceiver_updatesPreferenceSummary() { - mController.displayPreference(mScreen); - mController.onResume(); - - mController.mLocationProvidersChangedReceiver - .onReceive(mContext, new Intent(LocationManager.PROVIDERS_CHANGED_ACTION)); - - verify(mPreference).setSummary(any()); - } -} From 91988d018ebd99f06f4cdafa8dabc07185b01dd4 Mon Sep 17 00:00:00 2001 From: tmfang Date: Fri, 2 Nov 2018 14:04:23 +0800 Subject: [PATCH 3/8] Rename title of Security page Since "Location" was moved to top level, title shouldn't be "Security&Location" Bug: 116628158 Test: visual Change-Id: I9065cae15c014d8826b5473e590177d400666180 --- res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 96500894868..7154934a06d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -820,7 +820,7 @@ Accounts - Security & location + Security Encryption & credentials From 51c94041820cce810b38248888a8725232b3f988 Mon Sep 17 00:00:00 2001 From: Stanley Wang Date: Wed, 17 Oct 2018 12:07:55 +0800 Subject: [PATCH 4/8] Architecture review of Copyable Slice Design doc: https://drive.google.com/open?id=1NJPd_282H4195HUGJH5cGJO_Jrcz1Vl6AAw_VQOtGq0 Fixes: 118398321 Test: manual Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=com.android.settings.slice Change-Id: Ic6762e58698a994d16a5de1778b4035ae430a256 --- res/drawable/ic_content_copy_grey600_24dp.xml | 9 ++++ .../settings/slices/CopyableSlice.java | 28 ++++++++++++ .../slices/SettingsSliceProvider.java | 8 +++- .../slices/SliceBroadcastReceiver.java | 27 ++++++++++++ .../settings/slices/SliceBuilderUtils.java | 34 ++++++++++++++ .../slices/SliceBuilderUtilsTest.java | 20 ++++++++- .../testutils/FakeCopyableController.java | 44 +++++++++++++++++++ .../settings/testutils/SliceTester.java | 39 +++++++++++++++- 8 files changed, 206 insertions(+), 3 deletions(-) create mode 100644 res/drawable/ic_content_copy_grey600_24dp.xml create mode 100644 src/com/android/settings/slices/CopyableSlice.java create mode 100644 tests/robotests/src/com/android/settings/testutils/FakeCopyableController.java diff --git a/res/drawable/ic_content_copy_grey600_24dp.xml b/res/drawable/ic_content_copy_grey600_24dp.xml new file mode 100644 index 00000000000..827c66ebab0 --- /dev/null +++ b/res/drawable/ic_content_copy_grey600_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/src/com/android/settings/slices/CopyableSlice.java b/src/com/android/settings/slices/CopyableSlice.java new file mode 100644 index 00000000000..31fc151d6ba --- /dev/null +++ b/src/com/android/settings/slices/CopyableSlice.java @@ -0,0 +1,28 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.slices; + +/** + * Provide the copy ability for preference controller to copy the data to the clipboard. + */ +public interface CopyableSlice { + /** + * Copy the key slice information to the clipboard. + * It is highly recommended to show the toast to notify users when implemented this function. + */ + void copy(); +} diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java index 08ed0d8bf15..cc698661159 100644 --- a/src/com/android/settings/slices/SettingsSliceProvider.java +++ b/src/com/android/settings/slices/SettingsSliceProvider.java @@ -106,6 +106,12 @@ public class SettingsSliceProvider extends SliceProvider { public static final String ACTION_SLIDER_CHANGED = "com.android.settings.slice.action.SLIDER_CHANGED"; + /** + * Action passed for copy data for the Copyable Slices. + */ + public static final String ACTION_COPY = + "com.android.settings.slice.action.COPY"; + /** * Intent Extra passed for the key identifying the Setting Slice. */ @@ -509,4 +515,4 @@ public class SettingsSliceProvider extends SliceProvider { } return new String[0]; } -} \ No newline at end of file +} diff --git a/src/com/android/settings/slices/SliceBroadcastReceiver.java b/src/com/android/settings/slices/SliceBroadcastReceiver.java index e9e9d2cdb4b..4b86f336332 100644 --- a/src/com/android/settings/slices/SliceBroadcastReceiver.java +++ b/src/com/android/settings/slices/SliceBroadcastReceiver.java @@ -24,6 +24,7 @@ import static com.android.settings.network.telephony.Enhanced4gLteSliceHelper import static com.android.settings.notification.ZenModeSliceBuilder.ACTION_ZEN_MODE_SLICE_CHANGED; import static com.android.settings.slices.SettingsSliceProvider.ACTION_SLIDER_CHANGED; import static com.android.settings.slices.SettingsSliceProvider.ACTION_TOGGLE_CHANGED; +import static com.android.settings.slices.SettingsSliceProvider.ACTION_COPY; import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_KEY; import static com.android.settings.slices.SettingsSliceProvider.EXTRA_SLICE_PLATFORM_DEFINED; import static com.android.settings.wifi.calling.WifiCallingSliceHelper.ACTION_WIFI_CALLING_CHANGED; @@ -115,6 +116,9 @@ public class SliceBroadcastReceiver extends BroadcastReceiver { case ACTION_FLASHLIGHT_SLICE_CHANGED: FlashlightSliceBuilder.handleUriChange(context, intent); break; + case ACTION_COPY: + handleCopyAction(context, key, isPlatformSlice); + break; } } @@ -184,6 +188,29 @@ public class SliceBroadcastReceiver extends BroadcastReceiver { updateUri(context, key, isPlatformSlice); } + private void handleCopyAction(Context context, String key, boolean isPlatformSlice) { + if (TextUtils.isEmpty(key)) { + throw new IllegalArgumentException("No key passed to Intent for controller"); + } + + final BasePreferenceController controller = getPreferenceController(context, key); + + if (!(controller instanceof CopyableSlice)) { + throw new IllegalArgumentException( + "Copyable action passed for a non-copyable key:" + key); + } + + if (!controller.isAvailable()) { + Log.w(TAG, "Can't update " + key + " since the setting is unavailable"); + if (!controller.hasAsyncUpdate()) { + updateUri(context, key, isPlatformSlice); + } + return; + } + + ((CopyableSlice) controller).copy(); + } + /** * Log Slice value update events into MetricsFeatureProvider. The logging schema generally * follows the pattern in SharedPreferenceLogger. diff --git a/src/com/android/settings/slices/SliceBuilderUtils.java b/src/com/android/settings/slices/SliceBuilderUtils.java index a947fb2d25e..c70b92e0f07 100644 --- a/src/com/android/settings/slices/SliceBuilderUtils.java +++ b/src/com/android/settings/slices/SliceBuilderUtils.java @@ -93,6 +93,10 @@ public class SliceBuilderUtils { return buildUnavailableSlice(context, sliceData); } + if (controller instanceof CopyableSlice) { + return buildCopyableSlice(context, sliceData, controller); + } + switch (sliceData.getSliceType()) { case SliceData.SliceType.INTENT: return buildIntentSlice(context, sliceData, controller); @@ -324,6 +328,28 @@ public class SliceBuilderUtils { .build(); } + private static Slice buildCopyableSlice(Context context, SliceData sliceData, + BasePreferenceController controller) { + final SliceAction copyableAction = getCopyableAction(context, sliceData); + final PendingIntent contentIntent = getContentPendingIntent(context, sliceData); + final IconCompat icon = getSafeIcon(context, sliceData); + final SliceAction primaryAction = new SliceAction(contentIntent, icon, + sliceData.getTitle()); + final CharSequence subtitleText = getSubtitleText(context, controller, sliceData); + @ColorInt final int color = Utils.getColorAccentDefaultColor(context); + final Set keywords = buildSliceKeywords(sliceData); + + return new ListBuilder(context, sliceData.getUri(), ListBuilder.INFINITY) + .setAccentColor(color) + .addRow(new RowBuilder() + .setTitle(sliceData.getTitle()) + .setSubtitle(subtitleText) + .setPrimaryAction(primaryAction) + .addEndItem(copyableAction)) + .setKeywords(keywords) + .build(); + } + private static BasePreferenceController getPreferenceController(Context context, String controllerClassName, String controllerKey) { try { @@ -346,6 +372,14 @@ public class SliceBuilderUtils { return getActionIntent(context, SettingsSliceProvider.ACTION_SLIDER_CHANGED, sliceData); } + private static SliceAction getCopyableAction(Context context, SliceData sliceData) { + final PendingIntent intent = getActionIntent(context, + SettingsSliceProvider.ACTION_COPY, sliceData); + final IconCompat icon = IconCompat.createWithResource(context, + R.drawable.ic_content_copy_grey600_24dp); + return new SliceAction(intent, icon, sliceData.getTitle()); + } + private static boolean isValidSummary(Context context, CharSequence summary) { if (summary == null || TextUtils.isEmpty(summary.toString().trim())) { return false; diff --git a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java index f9cc427e6c8..5770e25d544 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java +++ b/tests/robotests/src/com/android/settings/slices/SliceBuilderUtilsTest.java @@ -41,6 +41,7 @@ import androidx.slice.widget.SliceLiveData; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; import com.android.settings.core.BasePreferenceController; +import com.android.settings.testutils.FakeCopyableController; import com.android.settings.testutils.FakeFeatureFactory; import com.android.settings.testutils.FakeSliderController; import com.android.settings.testutils.FakeToggleController; @@ -67,6 +68,7 @@ public class SliceBuilderUtilsTest { private final Uri URI = Uri.parse("content://com.android.settings.slices/test"); private final Class TOGGLE_CONTROLLER = FakeToggleController.class; private final Class SLIDER_CONTROLLER = FakeSliderController.class; + private final Class COPYABLE_CONTROLLER = FakeCopyableController.class; private final Class CONTEXT_CONTROLLER = FakeContextOnlyPreferenceController.class; private final boolean IS_DYNAMIC_SUMMARY_ALLOWED = false; @@ -116,7 +118,6 @@ public class SliceBuilderUtilsTest { public void buildSliderSlice_returnsMatchingSlice() { final SliceData data = getDummyData(SLIDER_CONTROLLER, SliceData.SliceType.SLIDER); - final Slice slice = SliceBuilderUtils.buildSlice(mContext, data); verify(mFeatureFactory.metricsFeatureProvider) .action(eq(mContext), eq(MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED), @@ -130,6 +131,23 @@ public class SliceBuilderUtilsTest { SliceTester.testSettingsSliderSlice(mContext, slice, data); } + @Test + public void buildCopyableSlice_returnsMatchingSlice() { + final SliceData dummyData = getDummyData(COPYABLE_CONTROLLER, -1); + + final Slice slice = SliceBuilderUtils.buildSlice(mContext, dummyData); + verify(mFeatureFactory.metricsFeatureProvider) + .action(eq(mContext), eq(MetricsEvent.ACTION_SETTINGS_SLICE_REQUESTED), + mLoggingArgumentCatpor.capture()); + final Pair capturedLoggingPair = mLoggingArgumentCatpor.getValue(); + + assertThat(capturedLoggingPair.first) + .isEqualTo(MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME); + assertThat(capturedLoggingPair.second) + .isEqualTo(dummyData.getKey()); + SliceTester.testSettingsCopyableSlice(mContext, slice, dummyData); + } + @Test public void testUriBuilder_oemAuthority_intentPath_returnsValidSliceUri() { final Uri expectedUri = new Uri.Builder() diff --git a/tests/robotests/src/com/android/settings/testutils/FakeCopyableController.java b/tests/robotests/src/com/android/settings/testutils/FakeCopyableController.java new file mode 100644 index 00000000000..a02377cf268 --- /dev/null +++ b/tests/robotests/src/com/android/settings/testutils/FakeCopyableController.java @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2018 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.settings.testutils; + +import android.content.Context; + +import com.android.settings.core.BasePreferenceController; +import com.android.settings.slices.CopyableSlice; + +public class FakeCopyableController extends BasePreferenceController implements + CopyableSlice { + + public FakeCopyableController(Context context, String preferenceKey) { + super(context, preferenceKey); + } + + @Override + public int getAvailabilityStatus() { + return AVAILABLE; + } + + @Override + public boolean isSliceable() { + return true; + } + + @Override + public void copy() { + } +} diff --git a/tests/robotests/src/com/android/settings/testutils/SliceTester.java b/tests/robotests/src/com/android/settings/testutils/SliceTester.java index 892f948fe19..be4199da2d5 100644 --- a/tests/robotests/src/com/android/settings/testutils/SliceTester.java +++ b/tests/robotests/src/com/android/settings/testutils/SliceTester.java @@ -168,6 +168,43 @@ public class SliceTester { assertKeywords(metadata, sliceData); } + /** + * Test the copyable slice, including: + * - No intent + * - Correct title + * - Correct intent + * - Correct keywords + * - TTL + * - Color + */ + public static void testSettingsCopyableSlice(Context context, Slice slice, + SliceData sliceData) { + final SliceMetadata metadata = SliceMetadata.from(context, slice); + + final SliceItem colorItem = SliceQuery.findSubtype(slice, FORMAT_INT, SUBTYPE_COLOR); + final int color = colorItem.getInt(); + assertThat(color).isEqualTo(Utils.getColorAccentDefaultColor(context)); + + final SliceAction primaryAction = metadata.getPrimaryAction(); + + final IconCompat expectedIcon = IconCompat.createWithResource(context, + sliceData.getIconResource()); + assertThat(expectedIcon.toString()).isEqualTo(primaryAction.getIcon().toString()); + + final long sliceTTL = metadata.getExpiry(); + assertThat(sliceTTL).isEqualTo(ListBuilder.INFINITY); + + // Check primary intent + final PendingIntent primaryPendingIntent = primaryAction.getAction(); + assertThat(primaryPendingIntent).isEqualTo( + SliceBuilderUtils.getContentPendingIntent(context, sliceData)); + + final List sliceItems = slice.getItems(); + assertTitle(sliceItems, sliceData.getTitle()); + + assertKeywords(metadata, sliceData); + } + /** * Test the contents of an unavailable slice, including: * - No toggles @@ -229,4 +266,4 @@ public class SliceTester { expectedKeywords.add(data.getScreenTitle().toString()); assertThat(keywords).containsExactlyElementsIn(expectedKeywords); } -} \ No newline at end of file +} From f519e3ffe5e14d784f840d5bb236ee29fc35422a Mon Sep 17 00:00:00 2001 From: Emily Chuang Date: Tue, 6 Nov 2018 19:56:42 +0800 Subject: [PATCH 5/8] Make ContextualCardLoader do entire loading upon fragment's onStart() For dismissal mechanism, we will have to get information about those dismissed cards that are stored in Card DB with flag "dismiss" to filter them out. Currently we only do the entire loading in fragment's onCreate(), so only when the fragment is recreated users can get the new data. Now we are changing it to onStart() and make the loader restart so we are able to show the latest cards. Change-Id: I4c0be297232f026b46feb8084084816e1acc8f11 Fixes: 119090460 Bug: 113783548 Test: visual --- .../homepage/contextualcards/ContextualCardManager.java | 2 +- .../homepage/contextualcards/ContextualCardsFragment.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java index 51bef8726c9..9bd08c8a3fe 100644 --- a/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java +++ b/src/com/android/settings/homepage/contextualcards/ContextualCardManager.java @@ -84,7 +84,7 @@ public class ContextualCardManager implements ContextualCardLoader.CardContentLo final CardContentLoaderCallbacks cardContentLoaderCallbacks = new CardContentLoaderCallbacks(mContext); cardContentLoaderCallbacks.setListener(this); - LoaderManager.getInstance(fragment).initLoader(CARD_CONTENT_LOADER_ID, null /* bundle */, + LoaderManager.getInstance(fragment).restartLoader(CARD_CONTENT_LOADER_ID, null /* bundle */, cardContentLoaderCallbacks); } diff --git a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java index d82fdfeaa5e..29eea4b7fa2 100644 --- a/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java +++ b/src/com/android/settings/homepage/contextualcards/ContextualCardsFragment.java @@ -43,6 +43,11 @@ public class ContextualCardsFragment extends InstrumentedFragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContextualCardManager = new ContextualCardManager(getContext(), getSettingsLifecycle()); + } + + @Override + public void onStart() { + super.onStart(); mContextualCardManager.loadContextualCards(this); } From 222dca5b7cb5f866c0d8f9a56eec6d4a554d5886 Mon Sep 17 00:00:00 2001 From: Bill Yi Date: Tue, 6 Nov 2018 04:15:12 -0800 Subject: [PATCH 6/8] Import translations. DO NOT MERGE Auto-generated-cl: translation import Bug: 64712476 Change-Id: Ie15195c81e11f67f4bd72be18c6af0d273666ceb --- res/values-ar/strings.xml | 84 +++++++++++++++++------------------ res/values-bg/strings.xml | 6 +-- res/values-ca/strings.xml | 12 ++--- res/values-da/strings.xml | 16 +++---- res/values-de/strings.xml | 14 +++--- res/values-el/strings.xml | 8 ++-- res/values-en-rAU/strings.xml | 4 +- res/values-en-rCA/strings.xml | 8 ++-- res/values-en-rGB/strings.xml | 4 +- res/values-en-rIN/strings.xml | 4 +- res/values-es-rUS/strings.xml | 4 +- res/values-es/strings.xml | 2 +- res/values-fr-rCA/strings.xml | 12 ++--- res/values-fr/strings.xml | 24 +++++----- res/values-hr/strings.xml | 6 +-- res/values-in/strings.xml | 14 +++--- res/values-it/strings.xml | 28 ++++++------ res/values-iw/strings.xml | 74 +++++++++++++++--------------- res/values-ja/strings.xml | 66 +++++++++++++-------------- res/values-ko/strings.xml | 28 ++++++------ res/values-mk/strings.xml | 4 +- res/values-nb/strings.xml | 6 +-- res/values-pl/strings.xml | 2 +- res/values-pt-rBR/strings.xml | 18 ++++---- res/values-pt/strings.xml | 18 ++++---- res/values-sl/strings.xml | 6 +-- res/values-sv/strings.xml | 8 ++-- res/values-tl/strings.xml | 10 ++--- res/values-uk/strings.xml | 18 ++++---- res/values-vi/strings.xml | 8 ++-- res/values-zh-rCN/strings.xml | 8 ++-- 31 files changed, 262 insertions(+), 262 deletions(-) diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 5058a2de95b..b5ef7f839da 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -62,7 +62,7 @@ "خارج نطاق الخدمة" "مكالمات طوارئ فقط" "تم إيقاف اللاسلكي" - "تجوال" + "التجوال" "ليس هناك تجوال" "متوقف" "الرنين" @@ -170,7 +170,7 @@ "‏يريد %1$s الدخول إلى رسائلك. هل تريد منح %2$s حق الدخول؟" "‏طلب حق الوصول إلى شريحة SIM" "‏يريد %1$s الوصول إلى شريحة SIM. ويؤدي منح حق الوصول إلى شريحة SIM إلى إيقاف اتصال البيانات على جهازك طوال مدة الاتصال. منح حق الوصول إلى %2$s?" - "مرئي باسم \"^1\" للأجهزة الأخرى" + "يظهر باسم \"^1\" للأجهزة الأخرى" "يجب تفعيل بلوتوث للاتصال بالأجهزة الأخرى." "أجهزتك" "إقران جهاز جديد" @@ -188,7 +188,7 @@ "الأجهزة المحفوظة" "إضافة جهاز" "سيتم تشغيل بلوتوث للإقران" - "تفضيلات الاتصال" + "إعدادات الاتصال المفضّلة" "الأجهزة المتصلة سابقًا" "التاريخ والوقت" "اختيار المنطقة الزمنية" @@ -776,7 +776,7 @@ "تذكّر الإعدادات" "الحد الأقصى لعدد الأجهزة الصوتية المتّصلة باستخدام البلوتوث" "اختيار الحد الأقصى لعدد الأجهزة الصوتية المتّصلة باستخدام البلوتوث" - "إرسال" + "الإرسال" "تفعيل عرض شاشة لاسلكي" "لم يتم العثور على أجهزة قريبة." "جارٍ الاتصال" @@ -795,16 +795,16 @@ "‏%1$d ميغابت في الثانية" "‏يريد %s تشغيل Wi-Fi" "‏يريد %s إيقاف Wi-Fi" - "NFC" + "‏الاتصالات قصيرة المدى (NFC)" "السماح بتبادل البيانات عندما يلمس الجهاز اللوحي جهازًا آخر" "السماح بتبادل البيانات عندما يلمس الهاتف جهازًا آخر" "‏تشغيل NFC" "‏يتم من خلال تقنية الاتصال بالحقل القريب (NFC) تبادل البيانات بين هذا الجهاز والأجهزة أو الأهداف المجاورة الأخرى، مثل محطات الدفع وبرامج قراءة الوصول والعلامات أو الإعلانات التفاعلية." - "Android Beam" - "‏مستعد لنقل محتوى التطبيق عبر NFC" + "‏شعاع Android" + "‏جاهز لنقل محتوى التطبيق عبر الاتصالات قصيرة المدى (NFC)" "إيقاف" "‏غير متوفر بسبب إيقاف تشغيل NFC" - "Android Beam" + "‏شعاع Android" "‏عند تفعيل هذه الميزة، يمكنك إرسال محتوى التطبيق إلى جهاز به اتصال NFC عن طريق الإمساك بالجهازين بالقرب من بعضهما. ويمكنك على سبيل المثال إرسال صفحات ويب وفيديوهات YouTube وجهات اتصال وغيرها.\n\nما عليك سوى تقريب الجهازين لبعضهما بعضًا (من الخلف عادةً) والنقر على الشاشة وسيحدّد التطبيق ما يتم إرساله." "Wi‑Fi" "‏تشغيل شبكة Wi-Fi" @@ -2013,7 +2013,7 @@ "نص ذو درجة تباين عالية" "التحديث التلقائي لتكبير الشاشة" "تحديث تكبير الشاشة أثناء تنقلات التطبيق" - "زر التشغيل ينهي الاتصال" + "إنهاء الاتصال عبر زر التشغيل" "مؤشر الماوس الكبير" "إزالة الصور المتحركة" "صوت أحادي" @@ -2024,7 +2024,7 @@ "فترة الثبات" "إذا كنت تستخدم ماوس، يمكنك ضبط المؤشر بحيث يتم تلقائيًا اتخاذ الإجراء المطلوب عند توقف المؤشّر عن الحركة لمدة زمنية معينة." "مهلة قبل النقر" - "اهتزاز" + "الاهتزاز" "اهتزاز الجهاز عند الرنين أو تلقّي إشعار" "اهتزاز الجهاز عند لمسه" "استخدام الخدمة" @@ -2239,9 +2239,9 @@ "يطلب معرفة الموقع بشكل متكرر" "يعمل %1$d من التطبيقات بطريقة غير طبيعية" "التطبيقات تعمل بشكل طبيعي" - "استخدام البطارية في خلفية الهاتف عادي." - "استخدام البطارية في خلفية الجهاز اللوحي عادي." - "استخدام البطارية في خلفية الجهاز عادي." + "يتم استخدام بطارية الهاتف بشكل عادي في الخلفية." + "يتم استخدام بطارية الجهاز اللوحي بشكل عادي في الخلفية." + "يتم استخدام بطارية الجهاز بشكل عادي في الخلفية." "مستوى شحن البطارية منخفض" "لا يمكن للبطارية تقديم عمر بطارية جيد" "تحسين عمر بطارية الهاتف" @@ -2318,12 +2318,12 @@ "عندما يرصد \"مدير البطارية\" تطبيقات تستنزف شحن البطارية، سيتوفر لديك خيار بتقييد هذه التطبيقات، علمًا بأن التطبيقات المقيدة قد لا تعمل على نحو صحيح وقد تتأخر الإشعارات." "التطبيقات المقيّدة" - ‏تقييد استخدام شحن البطارية لـ %1$d تطبيق - تقييد استخدام شحن البطارية لتطبيقين - ‏تقييد استخدام شحن البطارية لـ %1$d تطبيقات - ‏تقييد استخدام شحن البطارية لـ %1$d تطبيقًا - ‏تقييد استخدام شحن البطارية لـ %1$d تطبيق - تقييد استخدام شحن البطارية لتطبيق واحد + ‏تحديد مدى استخدام البطارية لـ %1$d تطبيق + تحديد مدى استخدام البطارية لتطبيقين + ‏تحديد مدى استخدام البطارية لـ %1$d تطبيقات + ‏تحديد مدى استخدام البطارية لـ %1$d تطبيقًا + ‏تحديد مدى استخدام البطارية لـ %1$d تطبيق + تحديد مدى استخدام البطارية لتطبيق واحد "تستهلك هذه التطبيقات شحن البطارية في الخلفية. علمًا بأن التطبيقات المقيدة قد لا تعمل على نحو صحيح وقد تتأخر الإشعارات." "استخدام مدير البطارية" @@ -2424,7 +2424,7 @@ "%1$s من إجمالي شحن البطارية" "تفاصيل الاستخدام منذ آخر شحن كامل" "آخر شحن كامل" - "يستمر شحن البطارية الكامل حوالي" + "يمكن استخدام البطارية المشحونة بالكامل حوالي" "بيانات استخدام البطارية تقديرية ويمكن أن تتغير حسب الاستخدام" "أثناء الاستخدام النشط" "أثناء الاستخدام في الخلفية" @@ -3018,7 +3018,7 @@ "‏السماح بتعديل إعدادات Wi‑Fi والجوال" "البلوتوث" "السماح بتعديل اقترانات وإعدادات البلوتوث" - "‏NFC (الاتصالات قريبة المدى)" + "‏الاتصالات قصيرة المدى (NFC)" "‏السماح بتبادل البيانات عندما يلمس جهاز %1$s هذا جهاز NFC آخر" "السماح بتبادل البيانات عندما يلمس الجهاز اللوحي جهازًا آخر" "السماح بتبادل البيانات عندما يلمس الهاتف جهازًا آخر" @@ -3281,17 +3281,17 @@ "غير مفعّل / %1$s" "غير مفعّل" "قيد التفعيل" - "الطلب في كل مرة (ما لم يتم تفعيل الحالة تلقائيًا)" - "إلى أن يتم إيقافها (ما لم يتم تفعيل الحالة تلقائيًا)" + "الطلب في كل مرة (ما لم يتم تفعيل الميزة تلقائيًا)" + "إلى أن يتم إيقافها (ما لم يتم تفعيل الميزة تلقائيًا)" - %d ساعة (ما لم يتم تفعيل الحالة تلقائيًا) - ساعتان (%d) (ما لم يتم تفعيل الحالة تلقائيًا) - %d ساعات (ما لم يتم تفعيل الحالة تلقائيًا) - %d ساعة (ما لم يتم تفعيل الحالة تلقائيًا) - %d ساعة (ما لم يتم تفعيل الحالة تلقائيًا) - ساعة واحدة (ما لم يتم تفعيل الحالة تلقائيًا) + %d ساعة (ما لم يتم تفعيل الميزة تلقائيًا) + ساعتان (%d) (ما لم يتم تفعيل الميزة تلقائيًا) + %d ساعات (ما لم يتم تفعيل الميزة تلقائيًا) + %d ساعة (ما لم يتم تفعيل الميزة تلقائيًا) + %d ساعة (ما لم يتم تفعيل الميزة تلقائيًا) + ساعة واحدة (ما لم يتم تفعيل الميزة تلقائيًا) - "%d دقيقة (ما لم يتم تفعيل الحالة تلقائيًا)" + "%d دقيقة (ما لم يتم تفعيل الميزة تلقائيًا)" يمكن تشغيل %d قاعدة تلقائيًا. يمكن تشغيل قاعدتين (%d) تلقائيًا. @@ -3309,8 +3309,8 @@ "تمّ كتم الصوت." "لم يتم كتم الصوت." "تمّ كتم الصوت مع السماح بـ %1$s." - "تمّ كتم الصوت مع السماح لـ %1$s و%2$s." - "تمّ كتم الصوت مع السماح لـ %1$s و%2$s و%3$s." + "تمّ كتم الصوت مع السماح بكل من %1$s و%2$s." + "تمّ كتم الصوت مع السماح بكل من %1$s و%2$s و%3$s." "الرسائل والأحداث والتذكيرات" "عند تفعيل الإعداد \"الرجاء عدم الإزعاج\"، سيتم تجاهل الإشعارات عن الرسائل والتذكيرات والأحداث، باستثناء الإشعارات التي تسمح بها أعلاه. يمكنك ضبط إعدادات الرسائل للسماح لأصدقائك أو أفراد عائلتك أو جهات الاتصال الأخرى بالتواصل معك." "تمّ" @@ -3401,7 +3401,7 @@ "هل تريد السماح لخدمة %1$s بالوصول إلى خدمة الواقع الافتراضي؟" "لن يتمكن %1$s من العمل عند استخدامك تطبيقات في وضع الواقع الافتراضي." "الجهاز في وضع الواقع الافتراضي" - "خفض التعتيم (يُوصى به)" + "خفض التعتيم (مستحسن)" "خفض الوميض" "صورة داخل صورة" "لا تتيح أي من التطبيقات المثبَّتة عرض صورة داخل صورة" @@ -3427,7 +3427,7 @@ "لم ينشر هذا التطبيق أي إشعارات" "الإعدادات الإضافية في التطبيق" - "تفعيل لجميع التطبيقات" + "مفعّلة لجميع التطبيقات" إيقاف الإشعارات في %d تطبيق إيقاف الإشعارات في تطبيقين (%d) @@ -3913,7 +3913,7 @@ إيقاف الإشعارات في %d تطبيق إيقاف الإشعارات في تطبيق واحد - "تشغيلها لكلّ التطبيقات" + "مفعّلة لكلّ التطبيقات" "تم تثبيت %1$d تطبيق" "٢٤ تطبيقًا مثبَّتًا" "%1$s مستخدمة - %2$s فارغة" @@ -4126,12 +4126,12 @@ "الإعداد التلقائي للجهاز" "أذونات خاصة للتطبيقات" - يمكن لـ %d تطبيق استخدام البيانات غير المقيدة - يمكن لتطبيقين (%d) استخدام البيانات غير المقيدة - يمكن لـ %d تطبيقات استخدام البيانات غير المقيدة - يمكن لـ %d تطبيقًا استخدام البيانات غير المقيدة - يمكن لـ %d تطبيق استخدام البيانات غير المقيدة - يمكن لتطبيق واحد استخدام البيانات غير المقيدة + يمكن لـ %d تطبيق استخدام البيانات غير المقيّدة + يمكن لتطبيقين (%d) استخدام البيانات غير المقيّدة + يمكن لـ %d تطبيقات استخدام البيانات غير المقيّدة + يمكن لـ %d تطبيقًا استخدام البيانات غير المقيّدة + يمكن لـ %d تطبيق استخدام البيانات غير المقيّدة + يمكن لتطبيق واحد استخدام البيانات غير المقيّدة "هل تريد فعلًا مسح بيانات المستخدم والتحويل إلى تشفير الملفات؟" "مسح وتحويل" @@ -4422,7 +4422,7 @@ "اهتزاز" "كتم الصوت" "عدم اتخاذ أي إجراء" - "تفعيل (الاهتزاز)" + "مفعّل (الاهتزاز)" "تفعيل (كتم الصوت)" "إيقاف" "تفاصيل الشبكة" diff --git a/res/values-bg/strings.xml b/res/values-bg/strings.xml index ed110dd782d..e4cbeee7864 100644 --- a/res/values-bg/strings.xml +++ b/res/values-bg/strings.xml @@ -2199,9 +2199,9 @@ "Това приложение ще може да използва батерията на заден план. Тя може да се изтощи по-рано от очакваното." "Премахване" "Отказ" - "Приложенията ви използват обичайното количество от батерията. Ако те изразходват твърде много от нея, телефонът ви ще предложи действия, които можете да предприемете.\n\nВинаги можете да включите режима за запазване на батерията, ако тя е на път да се изтощи." - "Приложенията ви използват обичайното количество от батерията. Ако те изразходват твърде много от нея, таблетът ви ще предложи действия, които можете да предприемете.\n\nВинаги можете да включите режима за запазване на батерията, ако тя е на път да се изтощи." - "Приложенията ви използват обичайното количество от батерията. Ако те изразходват твърде много от нея, устройството ви ще предложи действия, които можете да предприемете.\n\nВинаги можете да включите режима за запазване на батерията, ако тя е на път да се изтощи." + "Приложенията ви използват обичайното количество енергия от батерията. Ако те изразходват твърде много от нея, телефонът ви ще предложи действия, които можете да предприемете.\n\nВинаги можете да включите режима за запазване на батерията, ако тя е напът да се изтощи." + "Приложенията ви използват обичайното количество енергия от батерията. Ако те изразходват твърде много от нея, таблетът ви ще предложи действия, които можете да предприемете.\n\nВинаги можете да включите режима за запазване на батерията, ако тя е напът да се изтощи." + "Приложенията ви използват обичайното количество енергия от батерията. Ако те изразходват твърде много от нея, устройството ви ще предложи действия, които можете да предприемете.\n\nВинаги можете да включите режима за запазване на батерията, ако тя е напът да се изтощи." "Мениджър на батерията" "Автоматично управление на приложенията" "Ограничение за батерията за приложения, които не използвате често" diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index cb0fb8ed92a..f72e8825ad9 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -2116,7 +2116,7 @@ "Vols limitar l\'activitat en segon pla?" "Si limites l\'activitat en segon pla d\'una aplicació, és possible que no funcioni correctament" "Com que aquesta aplicació no s\'ha configurat per optimitzar la bateria, no pots restringir-la.\n\nPer restringir l\'aplicació, activa l\'optimització de la bateria." - "Consum de la pantalla des de l\'última càrrega completa" + "Ús de la pantalla des de l\'última càrrega completa" "Consum de la pantalla" "Cerca de xarxes mòbils" "Ús de la bateria des de l\'última càrrega completa" @@ -2199,9 +2199,9 @@ "Aquesta aplicació podrà consumir bateria en segon pla, cosa que pot provocar que s\'esgoti abans del previst." "Suprimeix" "Cancel·la" - "Les teves aplicacions consumeixen una quantitat normal de bateria. Si en consumeixen massa, el telèfon et suggerirà mesures per evitar-ho.\n\nSi tens poca bateria, sempre pots activar l\'estalvi de bateria." - "Les teves aplicacions consumeixen una quantitat normal de bateria. Si en consumeixen massa, la tauleta et suggerirà mesures per evitar-ho.\n\nSi tens poca bateria, sempre pots activar l\'estalvi de bateria." - "Les teves aplicacions consumeixen una quantitat normal de bateria. Si en consumeixen massa, el dispositiu et suggerirà mesures per evitar-ho.\n\nSi tens poca bateria, sempre pots activar l\'estalvi de bateria." + "Les teves aplicacions utilitzen una quantitat normal de bateria. Si n\'utilitzen massa, el telèfon et suggerirà mesures per evitar-ho.\n\nSi tens poca bateria, sempre pots activar l\'estalvi de bateria." + "Les teves aplicacions utilitzen una quantitat normal de bateria. Si n\'utilitzen massa, la tauleta et suggerirà mesures per evitar-ho.\n\nSi tens poca bateria, sempre pots activar l\'estalvi de bateria." + "Les teves aplicacions utilitzen una quantitat normal de bateria. Si n\'utilitzen massa, el dispositiu et suggerirà mesures per evitar-ho.\n\nSi tens poca bateria, sempre pots activar l\'estalvi de bateria." "Gestor de bateria" "Gestiona les aplicacions automàticament" "Limita el consum de bateria de les aplicacions que no utilitzes habitualment" @@ -2309,7 +2309,7 @@ "Desglossament des de l\'última càrrega completa" "Última càrrega completa" "Durada aproximada de la càrrega completa" - "Les dades d\'ús de la bateria són aproximades i poden variar en funció de l\'ús del dispositiu" + "Les dades d\'ús de la bateria són aproximades i poden variar en funció de l\'ús" "Durant l\'ús actiu" "En segon pla" "Ús de la bateria" @@ -3965,7 +3965,7 @@ "Per veure l\'hora, les icones de notificació i altres dades, agafa el telèfon" "Per veure l\'hora, les icones de notificació i altres dades, agafa la tauleta" "Per veure l\'hora, les icones de notificació i altres dades, agafa el dispositiu." - "Llisca al sensor d\'empremtes per consultar les notificacions" + "Fes lliscar l\'empremta digital per veure notificacions" "Fes lliscar l\'empremta digital" "Per consultar les notificacions, llisca cap avall al sensor d\'empremtes digitals de la part posterior del telèfon." "Per consultar les notificacions, llisca cap avall al sensor d\'empremtes digitals situat a la part posterior de la tauleta." diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 00d626be706..b46ce8b77b1 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -1145,7 +1145,7 @@ "Automatisk lysstyrke" "Løft enheden for at vække den" "Aktiv låseskærm" - "Altid aktiveret/Øget batteriforbrug" + "Altid aktiveret / Øget batteriforbrug" "Nye underretninger" "Hvornår skal den vises" "Nye underretninger" @@ -1926,14 +1926,14 @@ "Brugstid" "Hjælpefunktioner" "Indstillinger for hjælpefunktioner" - "Skærmlæsere, visning, kontrolelementer til interaktion" + "Skærmlæsere, visning, interaktionsstyring" "Synsindstillinger" "Du kan tilpasse denne enhed, så den passer til dine behov. Disse hjælpefunktioner kan ændres senere under Indstillinger." "Skift skriftstørrelse" "Skærmlæsere" "Lyd og tekst på skærmen" "Skærm" - "Kontrolelementer til interaktion" + "Interaktionsstyring" "Downloadede tjenester" "Eksperimentel" "TalkBack" @@ -2569,7 +2569,7 @@ "%1$s ud af %2$s" "Markér alle" "Dataforbrug" - "Appens dataforbrug" + "Dataforbrug fra apps" "Mobilselskabets dataopgørelse kan variere afhængigt af din enhed." "Appforbrug" "APPINFO" @@ -3271,7 +3271,7 @@ "Denne app har ikke sendt nogen underretninger" "Yderligere indstillinger i appen" - "Slået til for alle apps" + "Aktiveret for alle apps" Slået fra for %d app Slået fra for %d apps @@ -3443,7 +3443,7 @@ "%1$s brugt i %2$s" "Intern lagerplads" "Ekstern lagerplads" - "Appens dataforbrug" + "Dataforbrug fra apps" "%1$s brugt siden %2$s" "Anvendt lagerplads" "Skift" @@ -3701,7 +3701,7 @@ Slået fra for %d app Slået fra for %d apps - "Slået til for alle apps" + "Aktiveret for alle apps" "%1$d apps er installeret" "Der er installeret 24 apps" "%1$s er brugt – %2$s ledig plads" @@ -3780,7 +3780,7 @@ "Anvend opdateringer, når enheden genstarter" "Forbrug" "Mobildataforbrug" - "Appens dataforbrug" + "Dataforbrug fra apps" "Dataforbrug via Wi-Fi" "Forbrug af Ethernet-data" "Wi-Fi" diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 8d3bb6868e8..eeed04a4acc 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -1098,7 +1098,7 @@ "\"Helligkeit an Lichtverhältnisse anpassen\": Ist diese Funktion aktiviert, kannst du die Helligkeit dennoch vorübergehend ändern." "Die Displayhelligkeit passt sich automatisch an deine Umgebung und deine Aktivitäten an. Du kannst den Schieberegler manuell bewegen, um deine Präferenzen für die adaptive Helligkeit anzugeben." "Nachtlicht" - "Beim Nachtlicht wird das Display gelb gefärbt. Dadurch kannst du den Bildschirm bei schwachem Licht leichter lesen und er wirkt beim Einschlafen nicht störend." + "Beim Nachtlicht wird das Display gelb getönt. Dadurch lässt es sich bei schwachem Licht besser lesen und stört nicht beim Einschlafen." "Zeitplan" "Kein Zeitplan" "Zu benutzerdefinierter Zeit aktiv" @@ -2151,7 +2151,7 @@ "Häufige Standortabfrage" "%1$d fehlerhafte Apps" "Apps funktionieren normal" - "Der Akkuverbrauch im Hintergrund des Smartphones ist normal" + "Der Akkuverbrauch im Hintergrund ist normal" "Der Akkuverbrauch im Hintergrund des Tablets ist normal" "Der Akkuverbrauch im Hintergrund des Geräts ist normal" "Geringe Akkuleistung" @@ -2199,9 +2199,9 @@ "Diese App läuft im Hintergrund und beansprucht dabei den Akku. Er könnte deshalb früher als erwartet leer sein." "Entfernen" "Abbrechen" - "Der Akkuverbrauch durch Apps ist normal. Falls der Akku durch Apps zu stark beansprucht wird, werden dir auf deinem Smartphone mögliche Maßnahmen vorgeschlagen.\n\nBei niedrigem Akkustand kannst du jederzeit den Energiesparmodus aktivieren." - "Der Akkuverbrauch durch Apps ist normal. Falls der Akku durch Apps zu stark beansprucht wird, werden dir auf deinem Tablet mögliche Maßnahmen vorgeschlagen.\n\nBei niedrigem Akkustand kannst du jederzeit den Energiesparmodus aktivieren." - "Der Akkuverbrauch durch Apps ist normal. Falls der Akku durch Apps zu stark beansprucht wird, werden dir auf deinem Gerät mögliche Maßnahmen vorgeschlagen.\n\nBei niedrigem Akkustand kannst du jederzeit den Energiesparmodus aktivieren." + "Der Akkuverbrauch durch Apps ist normal. Falls der Akku zu stark beansprucht wird, werden dir mögliche Maßnahmen vorgeschlagen.\n\nBei niedrigem Akkustand kannst du jederzeit den Energiesparmodus aktivieren." + "Der Akkuverbrauch durch Apps ist normal. Falls der Akku zu stark beansprucht wird, werden dir mögliche Maßnahmen vorgeschlagen.\n\nBei niedrigem Akkustand kannst du jederzeit den Energiesparmodus aktivieren." + "Der Akkuverbrauch durch Apps ist normal. Falls der Akku zu stark beansprucht wird, werden dir mögliche Maßnahmen vorgeschlagen.\n\nBei niedrigem Akkustand kannst du jederzeit den Energiesparmodus aktivieren." "Akku-Manager" "Apps automatisch verwalten" "Akkunutzung für selten verwendete Apps einschränken" @@ -2308,7 +2308,7 @@ "%1$s des gesamten Akkuverbrauchs" "Verbrauchsdetails seit letzter vollständiger Ladung" "Letzte vollständige Aufladung" - "Ein vollständig aufgeladener Akku hält ungefähr" + "Ungefähre Nutzungsdauer bei vollständiger Aufladung" "Die Daten zum Akkuverbrauch sind eine Schätzung und können sich je nach Nutzung ändern" "Bei aktiver Nutzung" "Im Hintergrund" @@ -3188,7 +3188,7 @@ "Andere Töne und Vibrationen" "Benachrichtigungen" "Vor Kurzem gesendet" - "Alle aus den letzten 7 Tagen ansehen" + "Alle der letzten 7 Tage ansehen" "Erweitert" "Geschäftliche Benachrichtigungen" "Benachrichtigungspunkte zulassen" diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 691d7092ebb..9cddd859647 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -1005,7 +1005,7 @@ "Διεύθυνση έκτακτης ανάγκης" "Χρήση ως τοποθεσίας σας όταν πραγματοποιείτε κλήση έκτακτης ανάγκης μέσω Wi‑Fi" - "Μάθετε περισσότερα"" σχετικά με τις λειτουργίες Ιδιωτικού DNS" + "Περισσότερα"" σχετικά με τις λειτουργίες Ιδιωτικού DNS" "Η διαχείριση της ρύθμισης πραγματοποιείται από την εταιρεία κινητής τηλεφωνίας" "Ενεργοποίηση Κλήσης Wi-Fi" "Ενεργοποίηση Κλήσης Wi-Fi" @@ -2954,12 +2954,12 @@ "Bluetooth, λειτουργία οδήγησης" "Bluetooth, NFC" "Bluetooth" - "Εφαρμογές και ειδοποιήσεις" + "Εφαρμ. - ειδοπ/σεις" "Άδειες, προεπιλεγμένες εφαρμογές" "Λογαριασμοί" "Δεν έχουν προστεθεί λογαριασμοί" "Προεπιλεγμένες εφ." - "Γλώσσες, ώρα, δημιουργία αντιγράφων ασφαλείας, ενημερώσεις" + "Γλώσσες, ώρα, αντίγραφα ασφαλ., ενημερώσεις" "Ρυθμίσεις" "Αναζήτηση ρυθμίσεων" "wifi, wi-fi, σύνδεση δικτύου, διαδίκτυο, ασύρματο, δεδομένα, wi fi" @@ -3694,7 +3694,7 @@ "Τρίτη 6:01 μ.μ." "Τρίτη 6:02 μ.μ." "Τρίτη 6:03 μ.μ." - "Δεν συνδέθηκε" + "Μη συνδεδεμένο" "Χρησιμοποιήθηκαν %1$s δεδομένων" "Χρήση ^1 σε Wi‑Fi" diff --git a/res/values-en-rAU/strings.xml b/res/values-en-rAU/strings.xml index 93ebd7582b6..108c3b0519d 100644 --- a/res/values-en-rAU/strings.xml +++ b/res/values-en-rAU/strings.xml @@ -3037,7 +3037,7 @@ "NFC tag is not writeable. Please use a different tag." "Default sound" "Ring volume at %1$s" - "Volume, vibration, Do not disturb" + "Volume, vibration, Do Not Disturb" "Ringer set to vibrate" "Ringer set to silent" "Ring volume at 80%" @@ -3072,7 +3072,7 @@ %d rules 1 rule - "Do not disturb" + "Do Not Disturb" "Turn on Do Not Disturb" "Exceptions" "Duration" diff --git a/res/values-en-rCA/strings.xml b/res/values-en-rCA/strings.xml index d69e201fabf..5a88b901a45 100644 --- a/res/values-en-rCA/strings.xml +++ b/res/values-en-rCA/strings.xml @@ -1010,7 +1010,7 @@ "Activate Wi‑Fi Calling" "Turn on Wi‑Fi calling" "Wi‑Fi calling is not supported for %1$s" - "Operator" + "Carrier" "Display" "Sound" "Volumes" @@ -2916,7 +2916,7 @@ "SIM name" "Enter SIM name" "SIM slot %1$d" - "Operator" + "Carrier" "Number" "SIM colour" "Select SIM card" @@ -3037,7 +3037,7 @@ "NFC tag is not writeable. Please use a different tag." "Default sound" "Ring volume at %1$s" - "Volume, vibration, Do not disturb" + "Volume, vibration, Do Not Disturb" "Ringer set to vibrate" "Ringer set to silent" "Ring volume at 80%" @@ -3072,7 +3072,7 @@ %d rules 1 rule - "Do not disturb" + "Do Not Disturb" "Turn on Do Not Disturb" "Exceptions" "Duration" diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 93ebd7582b6..108c3b0519d 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -3037,7 +3037,7 @@ "NFC tag is not writeable. Please use a different tag." "Default sound" "Ring volume at %1$s" - "Volume, vibration, Do not disturb" + "Volume, vibration, Do Not Disturb" "Ringer set to vibrate" "Ringer set to silent" "Ring volume at 80%" @@ -3072,7 +3072,7 @@ %d rules 1 rule - "Do not disturb" + "Do Not Disturb" "Turn on Do Not Disturb" "Exceptions" "Duration" diff --git a/res/values-en-rIN/strings.xml b/res/values-en-rIN/strings.xml index 93ebd7582b6..108c3b0519d 100644 --- a/res/values-en-rIN/strings.xml +++ b/res/values-en-rIN/strings.xml @@ -3037,7 +3037,7 @@ "NFC tag is not writeable. Please use a different tag." "Default sound" "Ring volume at %1$s" - "Volume, vibration, Do not disturb" + "Volume, vibration, Do Not Disturb" "Ringer set to vibrate" "Ringer set to silent" "Ring volume at 80%" @@ -3072,7 +3072,7 @@ %d rules 1 rule - "Do not disturb" + "Do Not Disturb" "Turn on Do Not Disturb" "Exceptions" "Duration" diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 049b338a592..495e7d47875 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -1100,7 +1100,7 @@ "Luz nocturna" "La Luz nocturna le da un tono ámbar a tu pantalla. No solo te permitirá ver o leer mejor en lugares con luz tenue, sino que también podría ayudarte a conciliar el sueño más rápido." "Programa" - "Ninguna" + "Ninguno" "Activar a una hora personalizada" "Activar de atardecer a amanecer" "Hora de inicio" @@ -4140,7 +4140,7 @@ "Silenciar sonidos" "Presiona el botón de encendido y el botón para subir el volumen al mismo tiempo" - "Combinación de teclas para evitar sonidos" + "Acceso directo para silenciar" "Vibrar" "Silenciar" "No hacer nada" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index ebe4e74faec..62ff98a28ce 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -200,7 +200,7 @@ "Puerto del proxy" "Saltarproxy para" "Restaurar valores predeterminados" - "Ok" + "Listo" "Nombre de host del proxy" "Atención" "Aceptar" diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index af2308b22f7..1bf64fb1b3e 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -3141,13 +3141,13 @@ "Désactivé : %1$s" "Désactivé" "Activé" - "Toujours demander (sauf s\'il est activé automatiquement)" - "Jusqu\'à la désactivation (sauf s\'il est activé automatiquement)" + "Toujours demander (sauf en cas d\'activation automatique)" + "Jusqu\'à la désactivation (sauf en cas d\'activation automatique)" - %d heure (sauf s\'il est activé automatiquement) - %d heures (sauf s\'il est activé automatiquement) + %d heure (sauf en cas d\'activation automatique) + %d heures (sauf en cas d\'activation automatique) - "%d minutes (sauf s\'il est activé automatiquement)" + "%d minutes (sauf en cas d\'activation automatique)" %d règle peut s\'activer automatiquement %d règles peuvent s\'activer automatiquement @@ -3155,7 +3155,7 @@ "Comportement" "Exceptions" "Horaire" - "Son et vibrations" + "Son et vibration" "Lorsque le mode Ne pas déranger est activé, le son et les vibrations sont désactivés, sauf pour les éléments autorisés ci-dessus." "Tout désactiver sauf" "Désactivés" diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index c986c4ef447..1ab28e0cd9b 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -1017,12 +1017,12 @@ "Effets musicaux" "Volume de la sonnerie" "Vibrer en mode silencieux" - "Son notif. par défaut" + "Son de notification par défaut" "Sonnerie" "Notification" "Utiliser le volume des appels entrants pour les notifications" "Non compatible avec les profils professionnels" - "Son notif. par défaut" + "Son de notification par défaut" "Multimédia" "Régler le volume pour la musique et les vidéos" "Alarme" @@ -1926,7 +1926,7 @@ "Temps d\'utilisation" "Accessibilité" "Paramètres d\'accessibilité" - "Lecteurs d\'écran, affichage, contrôles par interaction" + "Lecteurs d\'écran, affichage, commandes d\'interaction" "Paramètres visuels" "Vous pouvez personnaliser cet appareil en fonction de vos besoins et modifier ces fonctionnalités d\'accessibilité ultérieurement dans les paramètres." "Modifier la taille de la police" @@ -2831,7 +2831,7 @@ "Autoriser des applications et des contenus" "Applications avec restrictions" "Développer paramètres applis" - "Payer sans contact" + "Paiement sans contact" "Fonctionnement" "Payez avec votre téléphone dans les magasins." "Application de paiement par défaut" @@ -3047,9 +3047,9 @@ "Volume de la sonnerie" "Volume des notifications" "Sonnerie du téléphone" - "Son notif. par défaut" + "Son de notification par défaut" "Son fourni par l\'application" - "Son notif. par défaut" + "Son de notification par défaut" "Son de l\'alarme par défaut" "Vibreur pour les appels" "Autres sons" @@ -3154,7 +3154,7 @@ "Comportement" "Exceptions" - "Planifier" + "Programme" "Son et vibreur" "Lorsque le mode Ne pas déranger est activé, le son et le vibreur sont désactivés, sauf pour les éléments autorisés ci-dessus." "Couper le son pour tout sauf" @@ -3191,7 +3191,7 @@ "Tout afficher depuis les sept derniers jours" "Paramètres avancés" "Notifications profil pro" - "Autoriser pastilles notification" + "Autoriser les pastilles de notification" "Clignotement" "Sur l\'écran de verrouillage" "Profil professionnel verrouillé" @@ -3271,7 +3271,7 @@ "Cette application n\'a publié aucune notification" "Paramètres supplémentaires dans l\'application" - "Activée pour toutes les applications" + "Activées pour toutes les applications" Désactivé pour %d application Désactivé pour %d applications @@ -3511,7 +3511,7 @@ "Non reconnu" "Par défaut" "Par défaut pour utilisation pro" - "Assist. et saisie vocale" + "Assistance et saisie vocale" "Application d\'assistance" "Définir %s comme application d\'assistance ?" "L\'assistant pourra accéder aux informations relatives aux applications en cours d\'utilisation sur votre système, y compris aux informations visibles à l\'écran ou accessibles au sein des applications." @@ -3644,7 +3644,7 @@ "Risque de décharger la batterie plus rapidement. L\'utilisation de la batterie en arrière-plan ne sera plus bloquée pour l\'application." "Recommandé pour améliorer l\'autonomie de la batterie" "Autoriser %s à ignorer les optimisations de batterie ?" - "Aucune" + "Aucune application" "Désactiver l\'accès aux données d\'utilisation pour cette application n\'empêchera pas votre administrateur d\'effectuer le suivi de la consommation des données pour les applications de votre profil professionnel" "%1$d caractères utilisés sur %2$d" "Superposer aux autres applis" @@ -3892,7 +3892,7 @@ "Encoche" "encoche pour écran, entaille" "Appareil par défaut" - "Applis : accès spécial" + "Accès spécifiques des applications" %d application peut utiliser les données sans restrictions %d applications peuvent utiliser les données sans restrictions diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index 03d089ec7a9..540b68e510b 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -3093,7 +3093,7 @@ "Zvukovi priključivanja" "Zvukovi dodirivanja" "Vibracija za dodir" - "Dodirne povratne informacije za dodir, tipkovnicu i više" + "Haptičke povratne informacije za dodir, tipkovnicu i više" "Priključna stanica reproducira" "Sve zvukove" "Samo medijske zvukove" @@ -3198,7 +3198,7 @@ "Zanemareno" "Nije zanemareno" "Zanemareno, ali dopusti %1$s" - "Zanemareno, ali dopusti %1$s i %2$s" + "Zanemareno, osim ako su u pitanju %1$s i %2$s" "Zanemareno, ali dopusti %1$s, %2$s i %3$s" "Poruke, događaji i podsjetnici" "Kada je način Ne uznemiravaj uključen, zanemarit će se poruke, podsjetnici i događaji, osim prethodno navedenih stavki koje dopustite. Možete prilagoditi postavke poruka da bi vaša obitelj, prijatelji ili drugi kontakti mogli stupiti u kontakt s vama." @@ -3409,7 +3409,7 @@ "Dopusti događaje" "svi" "kontakti" - "kontakti označeni zvjezdicom" + "Kontakti označeni zvjezdicom" "Uzastopni pozivi" "Dopusti ponovne pozivatelje" "Vrsta pozivatelja: %1$s" diff --git a/res/values-in/strings.xml b/res/values-in/strings.xml index f04142c63ab..a2236c2b49e 100644 --- a/res/values-in/strings.xml +++ b/res/values-in/strings.xml @@ -180,12 +180,12 @@ "Batal" "Perangkat media yang tersedia" "Perangkat panggilan yang tersedia" - "Terhubung saat ini" + "Tersambung saat ini" "Perangkat yang tersimpan" "Tambahkan perangkat" "Bluetooth akan diaktifkan untuk menyambungkan" "Preferensi sambungan" - "Perangkat yang terhubung sebelumnya" + "Perangkat yang sebelumnya tersambung" "Tanggal & waktu" "Pilih zona waktu" @@ -2308,7 +2308,7 @@ "%1$s dari seluruh penggunaan baterai" "Penggunaan sejak pengisian baterai terakhir hingga penuh" "Pengisian baterai penuh terakhir" - "Pengisian penuh berlangsung sekitar" + "Baterai penuh bertahan sekitar" "Data penggunaan baterai merupakan perkiraan dan dapat berubah berdasarkan penggunaan" "Saat aktif digunakan" "Saat di background" @@ -2949,7 +2949,7 @@ "seluler" "penggunaan data" "hotspot" - "Perangkat terhubung" + "Perangkat tersambung" "Bluetooth, mode mengemudi, NFC" "Bluetooth, mode mengemudi" "Bluetooth, NFC" @@ -3125,7 +3125,7 @@ "Tanda notifikasi suara, getaran, dan beberapa visual" "Tanda notifikasi suara, getaran, dan visual" "Notifikasi yang diperlukan untuk aktivitas dasar ponsel dan status tidak akan pernah disembunyikan" - "Tidak Ada" + "Tidak ada" "opsi lain" "Tambahkan" "Aktifkan" @@ -3894,8 +3894,8 @@ "Default perangkat" "Akses aplikasi khusus" - %d aplikasi dapat menggunakan data yang tidak dibatasi - 1 aplikasi dapat menggunakan data yang tidak dibatasi + %d aplikasi dapat menggunakan data tanpa dibatasi + 1 aplikasi dapat menggunakan data tanpa dibatasi "Benar-benar hapus data pengguna dan konversikan ke enkripsi file?" "Hapus dan konversikan" diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index 71d3a8e4969..9f74859527c 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -1130,7 +1130,7 @@ "Cambia sfondo" "Personalizza lo schermo" "Scegli sfondo da" - "Screensaver" + "Salvaschermo" "Durante la ricarica o quando inserito nel dock" "Entrambi i casi" "Durante la ricarica" @@ -1515,7 +1515,7 @@ "Guida" "Rete mobile" "Piano dati mobile" - "App SMS" + "SMS" "Vuoi cambiare app per gli SMS?" "Utilizzare %1$s anziché %2$s come app per gli SMS?" "Utilizzare %s come app per gli SMS?" @@ -2151,9 +2151,9 @@ "Richiesta della posizione frequentemente" "%1$d app con comportamenti anomali" "Le app funzionano normalmente" - "Il telefono ha un consumo tipico della batteria in background" - "Il tablet ha un consumo tipico della batteria in background" - "Il dispositivo ha un consumo tipico della batteria in background" + "Il telefono ha un consumo standard della batteria in background" + "Il tablet ha un consumo standard della batteria in background" + "Il dispositivo ha un consumo standard della batteria in background" "Capacità della batteria in esaurimento" "La batteria non può fornire una buona durata" "Aumenta la durata della batteria del telefono" @@ -2199,9 +2199,9 @@ "Questa app potrà usare la batteria in background. La batteria potrebbe esaurirsi prima del previsto." "Rimuovi" "Annulla" - "Le tue app stanno utilizzando un livello di batteria normale. Se le app consumano troppa batteria, il tuo telefono suggerirà le azioni che puoi svolgere.\n\nSe la carica della batteria è scarsa, puoi sempre attivare Risparmio energetico." - "Le tue app stanno utilizzando un livello di batteria normale. Se le app consumano troppa batteria, il tuo tablet suggerirà le azioni che puoi svolgere.\n\nSe la carica della batteria è scarsa, puoi sempre attivare Risparmio energetico." - "Le tue app stanno utilizzando un livello di batteria normale. Se le app consumano troppa batteria, il tuo dispositivo suggerirà le azioni che puoi svolgere.\n\nSe la carica della batteria è scarsa, puoi sempre attivare Risparmio energetico." + "Le tue app stanno utilizzando un livello di batteria normale. Se le app consumano troppa batteria, il dispositivo ti suggerirà come rimediare.\n\nSe la batteria è in esaurimento, puoi attivare il Risparmio energetico in qualsiasi momento." + "Le tue app stanno utilizzando un livello di batteria normale. Se le app consumano troppa batteria, il dispositivo ti suggerirà come rimediare.\n\nSe la batteria è in esaurimento, puoi attivare il Risparmio energetico in qualsiasi momento." + "Le tue app stanno utilizzando un livello di batteria normale. Se le app consumano troppa batteria, il dispositivo ti suggerirà come rimediare.\n\nSe la batteria è in esaurimento, puoi attivare il Risparmio energetico in qualsiasi momento." "Gestione batteria" "Gestisci le app automaticamente" "Limita l\'utilizzo della batteria per le app che usi di rado" @@ -3188,7 +3188,7 @@ "Altri suoni e vibrazioni" "Notifiche" "Inviate di recente" - "Mostra tutte le app degli ultimi sette giorni" + "Mostra tutte degli ultimi sette giorni" "Avanzate" "Notifiche di lavoro" "Consenti indicatori notifica" @@ -3518,9 +3518,9 @@ "Accetta" "Non accetto" "Scegli input vocale" - "App Browser" + "Browser" "Nessun browser predefinito" - "App Telefono" + "Telefono" "(Predefinita)" "(Sistema)" "(Predefinito)" @@ -3707,7 +3707,7 @@ "Utilizzato: %1$s - Liberi: %2$s" "Memoria interna: %1$s in uso - %2$s disponibile" "Sospendi dopo %1$s di inattività" - "Sfondo, sospensione, dimensione carattere" + "Sfondo, sospensione, dimensione caratteri" "Sospendi dopo 10 minuti di inattività" "Utilizzo medio di %1$s di memoria su %2$s" "Accesso eseguito come %1$s" @@ -3841,7 +3841,7 @@ "Usa Risparmio dati" "Uso dati senza limitazioni" "Consenti accesso senza limitazioni con Risparmio dati attivo" - "App Home" + "Schermata home" "Nessuna Home predefinita" "Avvio sicuro" "Richiedi la sequenza per avviare il dispositivo. Quando non è attivo, il dispositivo non può ricevere chiamate, messaggi, notifiche o attivare sveglie." @@ -3892,7 +3892,7 @@ "Ritaglio display" "ritaglio display, tacca" "Predefinita dispositivo" - "Accesso speciale alle app" + "App con accesso speciale" %d app possono usare dati senza limitazioni 1 app può usare dati senza limitazioni diff --git a/res/values-iw/strings.xml b/res/values-iw/strings.xml index 0a2ed4019d8..c36e5aeda0e 100644 --- a/res/values-iw/strings.xml +++ b/res/values-iw/strings.xml @@ -1170,10 +1170,10 @@ "הרם כדי להוציא ממצב שינה" "תצוגה רגישה לסביבה" "פועל תמיד / צריכה מוגברת של הסוללה" - "הודעות חדשות" + "התראות חדשות" "מתי להציג" "הודעות חדשות" - "המסך יתעורר כשמתקבלות הודעות" + "המסך יתעורר כשמתקבלות התראות" "פועל תמיד" "הצגה של השעה, סמלי ההתראות ופרטים אחרים. צריכה מוגברת של הסוללה." "גודל גופן" @@ -1744,7 +1744,7 @@ "אפליקציה לשעת חירום" "איפוס העדפות אפליקציה" "האם לאפס העדפות אפליקציה?" - "הפעולה תאפס את כל ההעדפות עבור:\n\n "
  • "אפליקציות מושבתות"
  • \n" "
  • "הודעות של אפליקציות מושבתות"
  • \n" "
  • "אפליקציות שהן ברירת המחדל לביצוע פעולות"
  • \n" "
  • "הגבלות של נתוני רקע לאפליקציות"
  • \n
  • "הגבלת הרשאות"
  • " \n\n נתוני האפליקציות לא יילכו לאיבוד."
    + "הפעולה תאפס את כל ההעדפות עבור:\n\n "
  • "אפליקציות מושבתות"
  • \n" "
  • "התראות של אפליקציות מושבתות"
  • \n" "
  • "אפליקציות שהן ברירת המחדל לביצוע פעולות"
  • \n" "
  • "הגבלות של נתוני רקע לאפליקציות"
  • \n
  • "הגבלת הרשאות"
  • " \n\n נתוני האפליקציות לא יילכו לאיבוד."
    "איפוס אפליקציות" "נהל שטח אחסון" "סינון" @@ -2577,7 +2577,7 @@ "פרופיל עבודה עדיין אינו זמין" "פרופיל עבודה" "מנוהל בידי הארגון" - "אפליקציות והודעות מושבתות" + "אפליקציות והתראות מושבתות" "הסר פרופיל עבודה" "נתוני רקע" "אפליקציות יכולות לסנכרן, לשלוח ולקבל נתונים בכל עת" @@ -3024,7 +3024,7 @@ "‏Bluetooth, מצב נהיגה" "‏Bluetooth,‏ NFC" "Bluetooth" - "אפליקציות והודעות" + "אפליקציות והתראות" "הרשאות ואפליקציות המוגדרות כברירת מחדל" "חשבונות" "לא נוספו חשבונות" @@ -3167,18 +3167,18 @@ "הפעלת אותות חזותיים" "כשמצב \'נא לא להפריע\' פועל" "התראות" - "ללא צליל מהודעות" + "ללא צליל מהתראות" "יוצגו הודעות במסך" - "כשיגיעו הודעות, הטלפון לא ישמיע צליל ולא יפעיל רטט." - "ללא סימנים חזותיים או צלילים מהודעות" - "הודעות לא יוצגו ולא יושמעו" + "כשיגיעו התראות, הטלפון לא ישמיע צליל ולא יפעיל רטט." + "ללא סימנים חזותיים או צלילים מהתראות" + "התראות לא יוצגו ולא יושמעו" "הטלפון שלך לא יציג הודעות חדשות או קיימות, ולא ישמיע צליל או רטט. הודעות לא יופיעו בעת החלקה כלפי מטה מהחלק העליון של המסך.\n\nחשוב לזכור, הודעות החיוניות לפעולת הטלפון ולסטטוס עדיין יופיעו." "התאמה אישית" "הפעלת הגדרה מותאמת אישית" "הסרת הגדרה מותאמת אישית" - "ללא צליל מהודעות" + "ללא צליל מהתראות" "מוסתרות חלקית" - "ללא סימנים חזותיים או צלילים מהודעות" + "ללא סימנים חזותיים או צלילים מהתראות" "הגבלות מותאמות אישית" "כאשר המסך פועל" "כאשר המסך כבוי" @@ -3188,7 +3188,7 @@ "אל תציג הודעות קופצות במסך" "הסתרה של סמלי שורת הסטטוס" "הסתרה של סימני ההתראות" - "אני לא רוצה להציג הודעות" + "אני לא רוצה להציג התראות" "הסתרה מרשימת ההתראות" "אף פעם" "כאשר המסך כבוי" @@ -3266,7 +3266,7 @@ "נשלחו לאחרונה" "הצגת כל האפליקציות מ-7 הימים האחרונים" "אפשרויות מתקדמות" - "הודעות עבודה" + "התראות עבודה" "הצגה של סימני התראות" "אור מהבהב" "במסך הנעילה" @@ -3278,7 +3278,7 @@ "התראות" "הצג את כל התוכן של התראות מהעבודה" "הסתרה של תוכן עבודה רגיש" - "כיצד אתה רוצה שיוצגו הודעות פרופיל כאשר המכשיר נעול?" + "איך להציג התראות פרופיל כשהמכשיר נעול?" "התראות פרופיל" "התראות" "התראות אפליקציה" @@ -3286,7 +3286,7 @@ "קבוצת קטגוריות של התראות" "התנהגות" "הפעלת צליל" - "לעולם אל תציג הודעות" + "לעולם אל תציג התראות" "יש להציג באופן שקט וממוזער" "הצג ללא צליל" "עם צליל" @@ -3311,14 +3311,14 @@ "הגישה להודעות של פרופיל העבודה חסומה" "לאפליקציות אין אפשרות לקרוא התראות" - ‏%d אפליקציות יכולות לקרוא הודעות - ‏%d אפליקציות יכולות לקרוא הודעות - ‏%d אפליקציות יכולות לקרוא הודעות - ‏אפליקציה %d יכולה לקרוא הודעות + ‏%d אפליקציות יכולות לקרוא התראות + ‏%d אפליקציות יכולות לקרוא התראות + ‏%d אפליקציות יכולות לקרוא התראות + ‏אפליקציה %d יכולה לקרוא התראות "אין אפליקציות מותקנות שביקשו גישה להתראות." "האם להתיר ל-%1$s לגשת אל התראות?" - "%1$s יוכל לקרוא את כל ההודעות, כולל מידע אישי כמו שמות של אנשי קשר והודעות טקסט שתקבל. הוא יוכל גם לבטל הודעות או להפעיל לחצני פעולה שהן כוללות. \n\nכמו כן, הדבר יאפשר לאפליקציה להפעיל או לכבות את התכונה \'נא לא להפריע\' ולשנות הגדרות קשורות." + "%1$s יוכל לקרוא את כל ההתראות, כולל מידע אישי כמו שמות של אנשי קשר והודעות טקסט. הוא יוכל גם לבטל התראות או להפעיל לחצני פעולה שהן כוללות. \n\nכמו כן, תהיה לו אפשרות להפעיל או לכבות את התכונה \'נא לא להפריע\' ולשנות הגדרות קשורות." "אם תכבה ל-%1$s את הגישה להתראות, ניתן יהיה לכבות גם את הגישה לתכונה \'נא לא להפריע\'." "כבה" "ביטול" @@ -3349,7 +3349,7 @@ %d קטגוריות קטגוריה אחת (%d)
    - "האפליקציה הזו לא שלחה הודעות" + "האפליקציה הזו לא שלחה התראות" "הגדרות נוספות באפליקציה" "מופעל לכל האפליקציות" @@ -3367,9 +3367,9 @@ "מופעל" "כבוי" "לחסום הכל" - "לעולם אל תציג את ההודעות האלה" - "הצג הודעות" - "אף פעם אל תציג הודעות בהצללה או במכשירים היקפיים" + "לעולם את תציג את ההתראות אלה" + "הצגת התראות" + "לעולם אל תציג את ההתראות בלוח ההתראות או במכשירים היקפיים" "הצגה של סימן ההתראות" "הצגה של סימן ההתראות" "ביטול / שינוי של \'נא לא להפריע\'" @@ -3483,10 +3483,10 @@ "עבור למצב \'התראות בלבד\' עד %1$s" "שנה ל\'הפרעות בכל מצב\'" "כאשר המסך מופעל" - "הודעות שהושתקו במצב \'נא לא להפריע\' יופיעו במסך ויציגו סמל של שורת סטטוס" + "התראות שהושתקו במצב \'נא לא להפריע\' יופיעו במסך ויציגו סמל של שורת סטטוס" "כאשר המסך כבוי" - "הודעות שהושתקו במצב \'נא לא להפריע\' יפעילו את המסך ואת האור המהבהב" - "הודעות שהושתקו במצב \'נא לא להפריע\' יפעילו את המסך" + "התראות שהושתקו במצב \'נא לא להפריע\' יפעילו את המסך ואת האור המהבהב" + "התראות שהושתקו במצב \'נא לא להפריע\' יפעילו את המסך" "הגדרת התראות" "אישור" "שליחת משוב על המכשיר הזה" @@ -3962,9 +3962,9 @@ "אפליקציה לדף הבית" "לא הוגדרה ברירת מחדל לדף הבית" "הפעלה מאובטחת" - "נדרש קו ביטול נעילה להפעלת המכשיר. כשהאפשרות כבויה, המכשיר הזה לא יכול לקבל שיחות, הודעות, תזכורות או התראות." - "נדרש קוד גישה להפעלת המכשיר. כשהאפשרות כבויה, המכשיר הזה לא יכול לקבל שיחות, הודעות, תזכורות או התראות." - "נדרשת סיסמה להפעלת המכשיר. כשהאפשרות כבויה, המכשיר הזה לא יכול לקבל שיחות, הודעות, תזכורות או התראות." + "נדרש קו ביטול נעילה להפעלת המכשיר. כשהאפשרות כבויה, המכשיר הזה לא יכול לקבל שיחות, עדכונים, תזכורות או התראות." + "נדרש קוד גישה להפעלת המכשיר. כשהאפשרות כבויה, המכשיר הזה לא יכול לקבל שיחות, עדכונים, תזכורות או התראות." + "נדרשת סיסמה להפעלת המכשיר. כשהאפשרות כבויה, המכשיר הזה לא יכול לקבל שיחות, עדכונים, תזכורות או התראות." "הוספת טביעת אצבע" "ביטול נעילה עם אצבע אחרת" "פועל" @@ -3973,7 +3973,7 @@ "הפעלה עכשיו" "כיבוי עכשיו" "לא נעשה שימוש באופטימיזציה של סוללה" - "אם המכשיר נעול, מנע הקלדת תגובות, או טקסט אחר, בהודעות" + "כשהמכשיר נעול לא תתאפשר הקלדת תגובות או טקסט אחר בהתראות" "ברירת מחדל לבודק איות" "בחירת בודק איות" "שימוש בבדיקת איות" @@ -4091,12 +4091,12 @@ "כדי לבדוק מה השעה, לבדוק אם יש סמלי התראות ולראות מידע נוסף, פשוט צריך להרים את הטלפון." "כדי לבדוק מה השעה, לבדוק אם יש סמלי התראות ולראות מידע נוסף, פשוט צריך להרים את הטאבלט." "כדי לבדוק מה השעה, לבדוק אם יש סמלי התראות ולראות מידע נוסף, פשוט צריך להרים את המכשיר." - "החלקת טביעת אצבע לקריאת הודעות" + "החלקת טביעת אצבע לקריאת התראות" "החלקה של טביעת אצבע" - "כדי לבדוק הודעות יש להחליק כלפי מטה בחיישן טביעות האצבע שבחלק האחורי של הטלפון." - "כדי לבדוק הודעות יש להחליק כלפי מטה בחיישן טביעות האצבע שבחלק האחורי של הטאבלט." - "כדי לבדוק הודעות יש להחליק כלפי מטה בחיישן טביעות האצבע שבחלק האחורי של המכשיר." - "הצגת הודעות במהירות" + "כדי לבדוק התראות יש להחליק כלפי מטה בחיישן טביעות האצבע שבחלק האחורי של הטלפון." + "כדי לבדוק התראות יש להחליק כלפי מטה בחיישן טביעות האצבע שבחלק האחורי של הטאבלט." + "כדי לבדוק התראות יש להחליק כלפי מטה בחיישן טביעות האצבע שבחלק האחורי של המכשיר." + "הצגה מהירה של ההתראות" "פועל" "כבוי" "הנעילה של מנהל האתחול כבר בוטלה" @@ -4242,7 +4242,7 @@ "פרטי ניהול תצורה של ספק סלולרי" "הפעל ניהול תצורה של ספק סלולרי" "עדכון המצב \'נא לא להפריע\'" - "אפשר להשהות את ההודעות כדי לשמור על ריכוז" + "אפשר להשהות את ההתראות כדי שלא יפריעו לך" "מה חדש ומעניין?" "סיור היכרות עם הטלפון החדש" "סיור היכרות עם הטאבלט החדש" diff --git a/res/values-ja/strings.xml b/res/values-ja/strings.xml index 4ab2a6f460d..6f25b38c2bd 100644 --- a/res/values-ja/strings.xml +++ b/res/values-ja/strings.xml @@ -3041,7 +3041,7 @@ "NFCタグに書き込めません。別のタグを使用してください。" "デフォルトの通知音" "着信音の音量: %1$s" - "音量、バイブレーション、マナーモード" + "音量、バイブレーション、サイレント モード" "バイブレーション着信に設定" "マナーモード着信に設定" "着信音の音量: 80%" @@ -3076,8 +3076,8 @@ %d 件のルール 1 件のルール - "マナーモード" - "マナーモードを ON にする" + "サイレント モード" + "サイレント モードを ON にする" "例外" "期間" "次の音やバイブレーションを許可" @@ -3089,7 +3089,7 @@ "自動ルール" "自動ルール" "一時的にスマートフォンを消音" - "マナーモード ルールの設定" + "サイレント モード ルールの設定" "ルールを使用する" "優先する通知のみ" "アラームのみ" @@ -3097,7 +3097,7 @@ "%1$s: %2$s" "視覚的な通知のブロック" "視覚的な割り込みを許可" - "マナーモードが ON のとき" + "サイレント モードが ON のとき" "通知" "通知音なし" "画面に通知が表示されます" @@ -3135,10 +3135,10 @@ "ON にする" "今すぐ ON にする" "今すぐ OFF にする" - "%s まで、マナーモードは ON のままになります" - "OFF にするまで、マナーモードは ON のままになります" - "マナーモードがルール(%s)によって自動的に ON になりました" - "マナーモードがアプリ(%s)によって自動的に ON になりました" + "%s まで、サイレント モードは ON のままになります" + "OFF にするまで、サイレント モードは ON のままになります" + "サイレント モードがルール(%s)によって自動的に ON になりました" + "サイレント モードがアプリ(%s)によって自動的に ON になりました" "優先的な通知のみ" "%1$s%2$s" "ON / %1$s" @@ -3160,7 +3160,7 @@ "例外" "スケジュール" "着信音とバイブレーション" - "マナーモードが ON の場合、上記の許可した項目を除き、着信音とバイブレーションはミュートされます。" + "サイレント モードが ON の場合、上記の許可した項目を除き、着信音とバイブレーションはミュートされます。" "指定した項目を除きすべてミュート" "ミュート中" "ミュート対象外" @@ -3168,14 +3168,14 @@ "ミュート中(%1$s%2$sを除く)" "ミュート中(%1$s%2$s%3$sを除く)" "メッセージ、予定、リマインダー" - "マナーモードが ON の場合、上記の許可した項目を除き、メッセージ、リマインダー、予定はミュートされます。メッセージの設定を調整することで、友だち、家族などの連絡先からの着信のブロックを解除できます。" + "サイレント モードが ON の場合、上記の許可した項目を除き、メッセージ、リマインダー、予定はミュートされます。メッセージの設定を調整することで、友だち、家族などの連絡先からの着信のブロックを解除できます。" "完了" "設定" "通知の非表示、通知音なし" "通知音なし" "通知は表示されず、通知音も鳴りません。スター付きの連絡先からの発信や同一発信者による再発信は許可されます。" "(現在の設定)" - "マナーモードの通知設定を変更しますか?" + "サイレント モードの通知設定を変更しますか?" "仕事用プロファイルの音" "個人用プロファイルの音の使用" "仕事用プロファイルと個人用プロファイルの音は同じです" @@ -3244,8 +3244,8 @@
    "通知へのアクセスをリクエストしたインストール済みアプリはありません。" "%1$sでの通知へのアクセスを許可しますか?" - "%1$s はすべての通知を読み取ることができます。通知には、連絡先名などの個人情報や受信したメッセージの本文も含まれます。また、通知を非表示にしたり、通知内のボタン操作を実行したりすることもできます。\n\nこれにより、アプリがマナーモード設定を切り替えたり、関連する設定を変更したりすることも可能になります。" - "%1$s の通知アクセスを OFF にすると、マナーモードのアクセスも OFF になります。" + "%1$s はすべての通知を読み取ることができます。通知には、連絡先名などの個人情報や受信したメッセージの本文も含まれます。また、通知を非表示にしたり、通知内のボタン操作を実行したりすることもできます。\n\nこれにより、アプリがサイレント モード設定を切り替えたり、関連する設定を変更したりすることも可能になります。" + "%1$s の通知アクセスを OFF にすると、サイレント モードのアクセスも OFF になります。" "OFF にする" "キャンセル" "VR ヘルパー サービス" @@ -3261,8 +3261,8 @@ "ピクチャー イン ピクチャー" "ピクチャー イン ピクチャーを許可" "このアプリを開いているとき、またはアプリを離れた後に、動画の再生を続けるなどの目的でピクチャー イン ピクチャー ウィンドウを表示できるようにします。このウィンドウは、使用中の他のアプリの上に重ねて表示されます。" - "マナーモードへのアクセス" - "マナーモードへのアクセスをリクエストしたインストール済みアプリはありません" + "サイレント モードへのアクセス" + "サイレント モードへのアクセスをリクエストしたインストール済みアプリはありません" "アプリを読み込んでいます..." "リクエストに従い、このアプリの通知はこの端末には表示されません" "リクエストに従い、このカテゴリの通知はこの端末には表示されません" @@ -3292,8 +3292,8 @@ "シェードにも周辺端末にも通知を表示しない" "通知ドットの許可" "通知ドットの表示" - "ミュートの例外" - "ミュートが ON の場合もこの通知を引き続き表示します" + "サイレント モードの例外" + "サイレント モードが ON の場合もこの通知を引き続き表示します" "ロック画面上" "ブロック済み" "優先" @@ -3316,13 +3316,13 @@ "「%1$s」ルールを削除しますか?" "削除" "不明" - "現在、この設定は変更できません。アプリ(%1$s)のカスタム設定によってマナーモードが自動的に ON になりました。" + "現在、この設定は変更できません。アプリ(%1$s)のカスタム設定によってサイレント モードが自動的に ON になりました。" "現在、この設定は変更できません。アプリのカスタム設定によってマナーモードが自動的に ON になりました。" - "現在、この設定は変更できません。ユーザーのカスタム設定によってマナーモードが ON に設定されました。" + "現在、この設定は変更できません。ユーザーのカスタム設定によってサイレント モードが ON に設定されました。" "時間" - "自動ルールでは指定時間内はマナーモードを ON に設定します" + "自動ルールでは指定時間内はサイレント モードを ON に設定します" "予定" - "自動ルールでは指定した予定の間はマナーモードを ON に設定します" + "自動ルールでは指定した予定の間はサイレント モードを ON に設定します" "対象となる予定" "対象となる予定: %1$s" "すべてのカレンダー" @@ -3345,7 +3345,7 @@ "%1$s%2$s" "通話" "通話の許可" - "マナーモードが ON の場合、着信がブロックされます。設定を調整することで、友だち、家族などの連絡先からの着信のブロックを解除できます。" + "サイレント モードが ON の場合、着信がブロックされます。設定を調整することで、友だち、家族などの連絡先からの着信のブロックを解除できます。" "スター付きの連絡先" %d @@ -3397,10 +3397,10 @@ "%1$sまでアラームのみに変更します" "常に割り込みに変更します" "画面が ON のとき" - "マナーモードでサイレントに設定した通知を受信したときに、画面上にポップアップ表示され、ステータスバーにアイコンが表示されます" + "サイレント モードでサイレントに設定した通知を受信したときに、画面上にポップアップ表示され、ステータスバーにアイコンが表示されます" "画面が OFF のとき" "マナーモードでサイレントに設定した通知を受信したときに、画面が ON になり、光が点滅します" - "マナーモードでサイレントに設定した通知を受信したときに、画面が ON になります" + "サイレント モードでサイレントに設定した通知を受信したときに、画面が ON になります" "通知設定" "OK" "この端末についてフィードバックを送信" @@ -3460,7 +3460,7 @@ "マナーモード" "ロック画面にプライベートな内容を表示しない" "ロック画面に表示しない" - "マナーモードをオーバーライド済み" + "サイレント モードをオーバーライド済み" " / " "レベル %d" "%1$s%2$s" @@ -3492,7 +3492,7 @@ "カテゴリ: 重要度「緊急」" "カテゴリ: 重要度「低」" "カテゴリ: OFF" - "カテゴリ: マナーモードに優先" + "カテゴリ: サイレント モードに優先" "詳細設定" "アプリの設定" "不明なアプリ" @@ -3638,11 +3638,11 @@ "頻度" "最大使用量" "データ通信の使用はありません" - "%1$s のマナーモードへのアクセスを許可しますか?" - "アプリはマナーモードの ON / OFF を切り替えたり、関連する設定を変更したりできるようになります。" + "%1$s のサイレント モードへのアクセスを許可しますか?" + "アプリはサイレント モードの ON / OFF を切り替えたり、関連する設定を変更したりできるようになります。" "通知アクセスが ON になっているため ON のままにしておく必要があります" - "%1$s のマナーモードに対する権限を取り消しますか?" - "このアプリで作成したすべてのマナーモード ルールは削除されます。" + "%1$s のサイレント モードに対する権限を取り消しますか?" + "このアプリで作成したすべてのサイレント モード ルールは削除されます。" "最適化しない" "最適化する" "電池の消耗が速くなる可能性があります。アプリによるバックグランドでの電池使用は制限されなくなります。" @@ -3742,7 +3742,7 @@ "ポータブル Wi-Fi アクセス ポイント(%1$s)が有効です。この端末では Wi-Fi が OFF になっています。" "機内モードが ON" "機内モードが ON になると、Wi‑Fi、Bluetooth、モバイル ネットワークが OFF になります。Wi‑Fi と Bluetooth は ON に戻すことができます。" - "マナーモード ON" + "サイレント モード ON" "バッテリー セーバー ON" "バッテリー セーバーが有効になると、一部の端末機能が OFF になるほか、アプリが制限されます" "モバイルデータ OFF" @@ -4105,7 +4105,7 @@ "ムービー& TV アプリ" "携帯通信会社のプロビジョニング情報" "携帯通信会社のプロビジョニングをトリガー" - "マナーモードの更新" + "サイレント モードの更新" "集中するために通知を一時停止する" "注目の新機能" "新しいスマートフォンの使い方をご紹介します" diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 3e4b87abe04..c48f3f5fd51 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -1965,7 +1965,7 @@ "길게 눌러 입력하기" "색상 전도" "성능에 영향을 미칠 수 있음" - "유지 시간" + "정지 시간" "마우스를 사용하는 경우 커서가 일정 시간 동안 움직이지 않으면 자동으로 작동하도록 설정할 수 있습니다." "지연 후 클릭" "진동" @@ -2151,7 +2151,7 @@ "너무 잦은 위치정보 요청" "앱 %1$d개에서 오류 발생" "앱이 정상적으로 작동 중입니다." - "휴대전화의 배터리 사용량이 평소와 같습니다." + "배터리 사용량이 평소와 같습니다." "태블릿의 배터리 사용량이 평소와 같습니다." "기기의 배터리 사용량이 평소와 같습니다." "배터리 용량 낮음" @@ -2199,9 +2199,9 @@ "이 앱은 백그라운드에서 배터리를 사용할 수 있으므로 배터리가 예상보다 빨리 소진될 수 있습니다." "삭제" "취소" - "앱의 배터리 사용량이 평소와 같습니다. 앱에서 배터리를 너무 많이 사용하면 휴대전화에서 내가 취할 수 있는 조치를 제안합니다.\n\n배터리가 부족하면 언제든지 배터리 세이버 모드를 사용 설정할 수 있습니다." - "앱의 배터리 사용량이 평소와 같습니다. 앱에서 배터리를 너무 많이 사용하면 태블릿에서 내가 취할 수 있는 조치를 제안합니다.\n\n배터리가 부족하면 언제든지 배터리 세이버 모드를 사용 설정할 수 있습니다." - "앱의 배터리 사용량이 평소와 같습니다. 앱에서 배터리를 너무 많이 사용하면 기기에서 내가 취할 수 있는 조치를 제안합니다.\n\n배터리가 부족하면 언제든지 배터리 세이버 모드를 사용 설정할 수 있습니다." + "앱의 배터리 사용량이 평소와 같습니다. 앱에서 배터리를 너무 많이 사용하면 휴대전화에서 취하실 수 있는 조치를 알려 드리겠습니다.\n\n배터리가 부족하면 언제든지 배터리 세이버 모드를 사용 설정하세요." + "앱의 배터리 사용량이 평소와 같습니다. 앱에서 배터리를 너무 많이 사용하면 태블릿에서 취하실 수 있는 조치를 알려 드리겠습니다.\n\n배터리가 부족하면 언제든지 배터리 세이버 모드를 사용 설정하세요." + "앱의 배터리 사용량이 평소와 같습니다. 앱에서 배터리를 너무 많이 사용하면 기기에서 취하실 수 있는 조치를 알려 드리겠습니다.\n\n배터리가 부족하면 언제든지 배터리 세이버 모드를 사용 설정하세요." "배터리 관리자" "자동으로 앱 관리" "자주 사용하지 않는 앱의 배터리 사용량 제한" @@ -2395,7 +2395,7 @@ "블루투스 설정 업데이트" "%1$s %2$s" "사용" - "꺼짐" + "사용 안함" "켜는 중" "끄는 중" "Wi-Fi" @@ -2860,7 +2860,7 @@ "생명과 재산에 대한 긴급한 위협에 대해 알림을 수신합니다." "심각한 위협" "생명 및 재산에 대한 심각한 위협에 대해 알림을 수신합니다." - "황색 경고" + "앰버 경보" "아동 유괴에 대한 공지 수신" "반복" "통화 관리자 사용" @@ -3053,8 +3053,8 @@ "기본 알람 소리" "전화 올 때 벨소리와 함께 진동" "기타 소리" - "다이얼패드 신호음" - "화면 잠금 소리" + "다이얼패드 효과음" + "화면 잠금 효과음" "충전음" "도킹 소리" "터치음" @@ -3142,7 +3142,7 @@ "꺼짐" "켜짐" "항상 확인(자동으로 사용 설정되지 않은 경우)" - "사용자가 사용 중지할 때까지(자동으로 사용 설정되지 않은 경우)" + "사용 중지할 때까지(자동으로 사용 설정되지 않은 경우)" %d시간(자동으로 사용 설정되지 않은 경우) 1시간(자동으로 사용 설정되지 않은 경우) @@ -3163,7 +3163,7 @@ "%1$s을(를) 제외하고 음소거됨" "%1$s%2$s을(를) 제외하고 음소거됨" "%1$s, %2$s, %3$s을(를) 제외하고 음소거됨" - "메시지, 일정, 알림" + "메시지, 일정, 캘린더 알림" "알림 일시중지가 사용 설정되어 있으면 위에서 허용한 항목을 제외한 메시지, 알림, 일정이 음소거됩니다. 메시지 설정을 조정하여 친구, 가족 또는 연락처에 등록된 다른 사용자가 나에게 연락하도록 허용할 수 있습니다." "완료" "설정" @@ -3187,12 +3187,12 @@ "벨소리" "기타 소리 및 진동" "알림" - "최근에 보냄" + "최근에 알림을 보낸 앱" "지난 7일간의 모든 항목 보기" "고급" "직장 알림" "알림 표시 점 허용" - "표시등이 깜박거림" + "표시등 깜박임" "잠금 화면에 표시" "직장 프로필이 잠긴 경우" "모든 알림 내용 표시" @@ -3296,7 +3296,7 @@ "중요" "완료" "중요도" - "표시등이 깜박거림" + "표시등 깜박임" "진동" "소리" "삭제" diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index c80d88afc77..0980d8c4f8a 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -1299,7 +1299,7 @@ "Постави" "Истражувај" "Ослободи простор" - "Управувајте со меморијата" + "Управувајте со капацитетот" "USB врска со компјутер" "Поврзи како" "Медиумски уред (MTP)" @@ -3933,7 +3933,7 @@ %s секунди %s секунди - "Управувајте со меморијата" + "Управувајте со капацитетот" "За помош при ослободувањето простор за меморијата, управникот со меморијата ги отстранува резервните копии од фотографиите и видеата од уредот." "Отстранете фотографии и видеа" "Управник со меморија" diff --git a/res/values-nb/strings.xml b/res/values-nb/strings.xml index 9d2e54c0f70..2cab2eeb03f 100644 --- a/res/values-nb/strings.xml +++ b/res/values-nb/strings.xml @@ -3160,9 +3160,9 @@ "Ignorer alle unntatt" "Ignorert" "Ikke ignorert" - "Ignorert, men tillat %1$s" - "Ignorert, men tillat %1$s og %2$s" - "Ignorert, men tillat %1$s, %2$s og %3$s" + "Av, men tillat %1$s" + "Av, men tillat %1$s og %2$s" + "Av, men tillat %1$s, %2$s og %3$s" "Meldinger, aktiviteter og påminnelser" "Når «Ikke forstyrr» er på, ignoreres meldinger, påminnelser og aktiviteter, med unntak av elementene du tillater ovenfor. Du kan justere meldingsinnstillingene for å la venner, familie eller andre kontakter nå deg." "Ferdig" diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 8ca150e2802..eb26e7c05ef 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -2195,7 +2195,7 @@ "Często prosi o informację o lokalizacji" "Liczba aplikacji działających nieprawidłowo: %1$d" "Aplikacje działają normalnie" - "Telefon zużywa typową ilość energii w tle" + "Telefon zużywa w tle typową ilość energii" "Tablet zużywa typową ilość energii w tle" "Urządzenie zużywa typową ilość energii w tle" "Niski poziom naładowania baterii" diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index e56083fcebf..ae1d937048a 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -1094,7 +1094,7 @@ "Muito alto" "Seu nível de brilho preferencial" "Não ajustar para luz disponível" - "Aumento do uso da bateria" + "Maior uso da bateria" "Otimizar brilho conforme luz disponível. Quando o recurso está ativado, é possível ajustar o brilho temporariamente." "O brilho da tela será ajustado automaticamente ao seu ambiente e às suas atividades. Mova o controle deslizante para ajudar o brilho adaptável a memorizar suas preferências." "Modo noturno" @@ -1144,7 +1144,7 @@ "Configurações" "Brilho automático" "Levantar para ativar" - "Exibição de ambiente" + "Visualização na tela" "Sempre ativado / Aumento do uso da bateria" "Novas notificações" "Quando mostrar" @@ -1957,7 +1957,7 @@ "Texto em alto contraste" "Atual. autom. da ampliação da tela" "Atualiz. ampliação da tela em transições de aplic." - "Botão de ligar encerra a chamada" + "Botão liga/desliga encerra chamadas" "Ponteiro do mouse grande" "Remover animações" "Áudio mono" @@ -2199,9 +2199,9 @@ "Esse app poderá usar a bateria em segundo plano. É possível que sua bateria acabe antes do esperado." "Remover" "Cancelar" - "Seus apps estão consumindo uma quantidade normal de bateria. Se eles consumirem muita bateria, serão sugeridas ações no smartphone.\n\nSe a bateria estiver acabando, você poderá ativar a Economia de bateria." - "Seus apps estão consumindo uma quantidade normal de bateria. Se eles consumirem muita bateria, serão sugeridas ações no tablet.\n\nSe a bateria estiver acabando, você poderá ativar a Economia de bateria." - "Seus apps estão consumindo uma quantidade normal de bateria. Se eles consumirem muita bateria, serão sugeridas ações no dispositivo.\n\nSe a bateria estiver acabando, você poderá ativar a Economia de bateria." + "Seus apps estão consumindo volume normal de bateria. Se o consumo for excessivo, algumas ações serão sugeridas no smartphone.\n\nSe a bateria estiver acabando, você poderá ativar o recurso Economia de bateria." + "Seus apps estão consumindo volume normal de bateria. Se o consumo for excessivo, algumas ações serão sugeridas no tablet.\n\nSe a bateria estiver acabando, você poderá ativar o recurso Economia de bateria." + "Seus apps estão consumindo volume normal de bateria. Se o consumo for excessivo, algumas ações serão sugeridas no dispositivo.\n\nSe a bateria estiver acabando, você poderá ativar o recurso Economia de bateria." "Gerenciador de bateria" "Gerenciar apps automaticamente" "Limitar bateria para os apps que você não usa com frequência" @@ -3161,7 +3161,7 @@ "Som desativado" "Não silenciado" "Som desativado, mas permitido para %1$s" - "Som desativado, mas permitido para %1$s e %2$s" + "Som desativado, mas liberado para %1$s e %2$s" "Som desativado, mas permitido para %1$s, %2$s e %3$s" "Mensagens, eventos e lembretes" "Quando o \"Não perturbe\" estiver ativado, mensagens, lembretes e eventos serão silenciados, com exceção dos itens permitidos por você acima. É possível ajustar as configurações de mensagens para permitir que seus amigos, familiares ou outros contatos falem com você." @@ -3188,7 +3188,7 @@ "Outros sons e vibrações" "Notificações" "Enviadas recentemente" - "Ver todas enviadas nos últimos sete dias" + "Ver todas enviadas nos últimos 7 dias" "Avançado" "Notificações de trabalho" "Permitir pontos de notificação" @@ -4053,7 +4053,7 @@ App de câmera Apps de câmera - "App Agenda" + "App Calendário" "App Contatos" App de cliente de e-mail diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml index e56083fcebf..ae1d937048a 100644 --- a/res/values-pt/strings.xml +++ b/res/values-pt/strings.xml @@ -1094,7 +1094,7 @@ "Muito alto" "Seu nível de brilho preferencial" "Não ajustar para luz disponível" - "Aumento do uso da bateria" + "Maior uso da bateria" "Otimizar brilho conforme luz disponível. Quando o recurso está ativado, é possível ajustar o brilho temporariamente." "O brilho da tela será ajustado automaticamente ao seu ambiente e às suas atividades. Mova o controle deslizante para ajudar o brilho adaptável a memorizar suas preferências." "Modo noturno" @@ -1144,7 +1144,7 @@ "Configurações" "Brilho automático" "Levantar para ativar" - "Exibição de ambiente" + "Visualização na tela" "Sempre ativado / Aumento do uso da bateria" "Novas notificações" "Quando mostrar" @@ -1957,7 +1957,7 @@ "Texto em alto contraste" "Atual. autom. da ampliação da tela" "Atualiz. ampliação da tela em transições de aplic." - "Botão de ligar encerra a chamada" + "Botão liga/desliga encerra chamadas" "Ponteiro do mouse grande" "Remover animações" "Áudio mono" @@ -2199,9 +2199,9 @@ "Esse app poderá usar a bateria em segundo plano. É possível que sua bateria acabe antes do esperado." "Remover" "Cancelar" - "Seus apps estão consumindo uma quantidade normal de bateria. Se eles consumirem muita bateria, serão sugeridas ações no smartphone.\n\nSe a bateria estiver acabando, você poderá ativar a Economia de bateria." - "Seus apps estão consumindo uma quantidade normal de bateria. Se eles consumirem muita bateria, serão sugeridas ações no tablet.\n\nSe a bateria estiver acabando, você poderá ativar a Economia de bateria." - "Seus apps estão consumindo uma quantidade normal de bateria. Se eles consumirem muita bateria, serão sugeridas ações no dispositivo.\n\nSe a bateria estiver acabando, você poderá ativar a Economia de bateria." + "Seus apps estão consumindo volume normal de bateria. Se o consumo for excessivo, algumas ações serão sugeridas no smartphone.\n\nSe a bateria estiver acabando, você poderá ativar o recurso Economia de bateria." + "Seus apps estão consumindo volume normal de bateria. Se o consumo for excessivo, algumas ações serão sugeridas no tablet.\n\nSe a bateria estiver acabando, você poderá ativar o recurso Economia de bateria." + "Seus apps estão consumindo volume normal de bateria. Se o consumo for excessivo, algumas ações serão sugeridas no dispositivo.\n\nSe a bateria estiver acabando, você poderá ativar o recurso Economia de bateria." "Gerenciador de bateria" "Gerenciar apps automaticamente" "Limitar bateria para os apps que você não usa com frequência" @@ -3161,7 +3161,7 @@ "Som desativado" "Não silenciado" "Som desativado, mas permitido para %1$s" - "Som desativado, mas permitido para %1$s e %2$s" + "Som desativado, mas liberado para %1$s e %2$s" "Som desativado, mas permitido para %1$s, %2$s e %3$s" "Mensagens, eventos e lembretes" "Quando o \"Não perturbe\" estiver ativado, mensagens, lembretes e eventos serão silenciados, com exceção dos itens permitidos por você acima. É possível ajustar as configurações de mensagens para permitir que seus amigos, familiares ou outros contatos falem com você." @@ -3188,7 +3188,7 @@ "Outros sons e vibrações" "Notificações" "Enviadas recentemente" - "Ver todas enviadas nos últimos sete dias" + "Ver todas enviadas nos últimos 7 dias" "Avançado" "Notificações de trabalho" "Permitir pontos de notificação" @@ -4053,7 +4053,7 @@ App de câmera Apps de câmera - "App Agenda" + "App Calendário" "App Contatos" App de cliente de e-mail diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index 53e744c2a30..db3e7355e07 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -3234,9 +3234,9 @@ "Prezri vse razen" "Prezrto" "Ni prezrto" - "Prezrto; dovoljeni zvok: %1$s" - "Prezrto; dovoljena zvoka: %1$s in %2$s" - "Prezrto; dovoljeni zvoki: %1$s, %2$s in %3$s" + "Zvok je izklopljen; dovoljeni zvok: %1$s" + "Zvok je izklopljen; dovoljena zvoka: %1$s in %2$s" + "Zvok je izklopljen; dovoljeni zvoki: %1$s, %2$s in %3$s" "Sporočila, dogodki in opomniki" "Pri vklopljenem načinu »ne moti« bodo prezrta vsa sporočila, opomniki in dogodki razen za zgoraj omogočene elemente. Nastavitve sporočil lahko prilagodite tako, da boste dosegljivi za prijatelje, družinske člane ali druge stike." "Končano" diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index 84d23690b1c..20ba3c8cf44 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -1957,7 +1957,7 @@ "Text med hög kontrast" "Uppdatera skärmförstoring automatiskt" "Uppdatera skärmförstoring på appövergångar" - "Använd knapp för att avsluta samtal" + "Använd av/på-knapp för att avsluta samtal" "Stor muspekarikon" "Ta bort animationer" "Monoljud" @@ -3037,7 +3037,7 @@ "Du kan inte skriva i NFC-etiketten. Använd en annan etikett." "Standardsignal" "Ringvolym på %1$s" - "Volym, vibrera, Stör ej" + "Volym, vibrera, stör ej" "Enheten är inställd på att vibrera som ringsignal" "Ringsignalen är avstängd" "Ringvolym på 80 %" @@ -3965,8 +3965,8 @@ "Visa tid, aviseringsikoner och annan information genom att plocka upp mobilen." "Visa tid, aviseringsikoner och annan information genom att plocka upp surfplattan." "Visa tid, aviseringsikoner och annan information genom att plocka upp enheten." - "Svep med fingret för aviseringar" - "Svep med fingret" + "Svep över fingeravtryckssensorn för aviseringar" + "Svep över fingeravtryckssensorn" "Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av mobilen." "Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av surfplattan." "Visa aviseringar genom att svepa nedåt på fingeravtryckssensorn på baksidan av enheten." diff --git a/res/values-tl/strings.xml b/res/values-tl/strings.xml index d9ba957c8fc..f9b8d294a9d 100644 --- a/res/values-tl/strings.xml +++ b/res/values-tl/strings.xml @@ -184,8 +184,8 @@ "Mga naka-save na device" "Magdagdag ng device" "Mag-o-on ang Bluetooth para magpares" - "Mga kagustuhan sa koneksyon" - "Mga nakakonektang dating device" + "Kagustuhan sa koneksyon" + "Mga dating nakakonektang device" "Petsa at oras" "Pumili ng time zone" @@ -2151,7 +2151,7 @@ "Madalas humiling ng lokasyon" "%1$d (na) app na hindi normal na gumagana" "Gumagana nang normal ang mga app" - "Karaniwan lang ang paggamit ng baterya sa background ng telepono" + "Karaniwan lang ang paggamit ng background ng telepono sa baterya" "Karaniwan lang ang paggamit ng baterya sa background ng tablet" "Karaniwan lang ang paggamit ng baterya sa background ng device" "Paubos na ang baterya" @@ -2308,7 +2308,7 @@ "%1$s ng kabuuang baterya" "Breakdown mula noong huling napuno ang baterya" "Noong huling napuno ang baterya" - "Tumatagal ang kumpletong pag-charge nang humigit-kumulang" + "Tumatagal ang punong baterya nang halos" "Pagtatantya lang ang data ng paggamit ng baterya at maaaring magbago batay sa paggamit" "Habang aktibong ginagamit" "Habang nasa background" @@ -4142,7 +4142,7 @@ "Pigilang mag-ring" "Pindutin nang sabay ang Power at Panlakas ng Volume" - "Shortcut para mapigilan ang pag-ring" + "Shortcut para hindi mag-ring" "I-vibrate" "I-mute" "Walang gawin" diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index 9202a3ce1e8..2ec12fc3eb8 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -182,11 +182,11 @@ "Скасувати" "Доступні носії" "Доступні пристрої для дзвінків" - "Під’єднані пристрої" + "Поточні підключення" "Збережені пристрої" "Додати пристрій" "Bluetooth увімкнеться, щоб створити пару" - "Параметри підключення" + "Параметри підключень" "Підключені раніше пристрої" "Дата й час" "Вибрати часовий пояс" @@ -1847,7 +1847,7 @@ "%1$s оперативної пам’яті" "Запущений додаток" "Неактивні" - "Служби" + "Сервіси" "Процеси" "Зупин." "Налаштування" @@ -1959,7 +1959,7 @@ "Ви можете налаштувати цей пристрій для своїх потреб. Ці спеціальні можливості можна пізніше змінити в налаштуваннях." "Змінити розмір шрифту" "Програми зчитування з екрана" - "Аудіо та текст на екрані" + "Аудіо й текст на екрані" "Дисплей" "Елементи керування взаємодією" "Завантажені служби" @@ -1985,7 +1985,7 @@ "Висококонтрастний текст" "Автоматично оновлювати збільшення" "Оновлювати збільшення екрана в інших програмах" - "Кнопка живл. закінчує виклик" + "Кнопка живлення закінчує виклик" "Великий курсор" "Вимкнути анімацію" "Монофонічне аудіо" @@ -2411,7 +2411,7 @@ "Використання оперативної пам’яті (фонове)" "Час виконання" "Процеси" - "Служби" + "Сервіси" "Тривалість" "Деталі пам’яті" "3 години" @@ -3017,7 +3017,7 @@ "мобільна мережа" "використання трафіку" "точка доступу" - "Під’єднані пристрої" + "Підключені пристрої" "Bluetooth, режим автомобіля, NFC" "Bluetooth, режим автомобіля" "Bluetooth, NFC" @@ -3110,7 +3110,7 @@ "Звук дзвінка вимкнено" "Гучність дзвінка: 80%" "Гучність медіа" - "Гучність дзвінка" + "Гучність виклику" "Гучність будильника" "Гучність дзвінка" "Гучність сповіщень" @@ -4226,7 +4226,7 @@ "Колірна тема:" "За умовчанням" "Тема пристрою" - "автоматичний вибір (на основі фонового малюнка)" + "Автоматичний вибір (на основі фонового малюнка)" "світла" "темна" "Назва мережі" diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 74b0ae4ba2c..723cd881ad1 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -166,7 +166,7 @@ "%1$s muốn truy cập tin nhắn của bạn. Bạn có muốn cấp quyền truy cập cho %2$s không?" "Yêu cầu truy cập SIM" "%1$s muốn truy cập vào thẻ SIM của bạn. Cấp quyền truy cập vào thẻ SIM sẽ vô hiệu hóa khả năng kết nối dữ liệu trên thiết bị của bạn trong suốt thời gian kết nối. Cấp quyền truy cập vào %2$s?" - "Hiển thị là ^1 với các thiết bị khác" + "Hiển thị là \"^1\" với các thiết bị khác" "Bật Bluetooth để kết nối với các thiết bị khác." "Thiết bị của bạn" "Ghép nối thiết bị mới" @@ -1005,7 +1005,7 @@ "Địa chỉ khẩn cấp" "Dùng làm vị trí của bạn khi bạn thực hiện cuộc gọi khẩn cấp qua Wi‑Fi" - "Tìm hiểu thêm"" về DNS riêng" + "Tìm hiểu thêm"" về tính năng DNS riêng" "Cài đặt do nhà mạng quản lý" "Kích hoạt tính năng Gọi qua Wi‑Fi" "Bật tính năng Gọi qua Wi‑Fi" @@ -3271,7 +3271,7 @@ "Ứng dụng chưa đăng bất kỳ thông báo nào" "Cài đặt bổ sung trong ứng dụng" - "Bật cho tất cả ứng dụng" + "Đang bật cho tất cả ứng dụng" Tắt cho %d ứng dụng Tắt cho %d ứng dụng @@ -3701,7 +3701,7 @@ Tắt cho %d ứng dụng Tắt cho 1 ứng dụng - "Bật cho tất cả ứng dụng" + "Đang bật cho tất cả ứng dụng" "Đã cài đặt %1$d ứng dụng" "Đã cài đặt 24 ứng dụng" "Đã sử dụng %1$s - Còn trống %2$s" diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index c6cab6ee10e..13a7b895341 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -1099,7 +1099,7 @@ "您的屏幕亮度将根据您的环境和活动自动调节。您可以手动移动滑块,以帮助“自动调节亮度”功能了解您偏好的亮度。" "夜间模式" "夜间模式会将您的屏幕色调调为琥珀色,可让您在光线昏暗的环境下更舒适地查看屏幕或阅读文字,并有助您入睡。" - "排定时间" + "设定时间" "无" "在设定的时间开启" "在日落到日出期间开启" @@ -2116,7 +2116,7 @@ "要限制后台活动吗?" "如果您限制某个应用的后台活动,可能会导致该应用出现异常" "由于此应用未设置为优化电池用量,因此您无法对其加以限制。\n\n要限制该应用,请先开启电池优化功能。" - "上次充满电后的屏幕用电量" + "上次充满电后的屏幕使用时间" "屏幕耗电量" "移动网络扫描" "充满电后的电池用量" @@ -2308,7 +2308,7 @@ "整体用电量的 %1$s" "自上次充满电后的用电明细" "上次充满电" - "电池在充满电后的预估使用时间" + "电池充满电后的大致使用时长" "电池消耗量为大致值,可能会因使用情形而变化" "在前台运行时" "在后台运行时" @@ -3154,7 +3154,7 @@
    "行为" "例外情况" - "日程" + "设定时间" "提示音和振动" "开启勿扰模式后,系统既不会发出提示音也不会振动(您在上方允许的项目除外)。" "全部静音,除了" From 647d3e304707c85e2acde3da0a2ae3bf9e220eaf Mon Sep 17 00:00:00 2001 From: Sunny Shao Date: Tue, 6 Nov 2018 20:07:12 +0800 Subject: [PATCH 7/8] Added card_dismissed field into cards table Added card_dismissed field to keep user dismissal behavior and filter it when cards loaded Bug: 113783548 Test: manual test Change-Id: I27549eca95c2e49fcc92fa59a5c02da73814a522 --- .../contextualcards/CardDatabaseHelper.java | 30 +++++++++++++++++-- .../CardDatabaseHelperTest.java | 1 + 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/homepage/contextualcards/CardDatabaseHelper.java b/src/com/android/settings/homepage/contextualcards/CardDatabaseHelper.java index 647d718970b..0065f5c2525 100644 --- a/src/com/android/settings/homepage/contextualcards/CardDatabaseHelper.java +++ b/src/com/android/settings/homepage/contextualcards/CardDatabaseHelper.java @@ -16,6 +16,7 @@ package com.android.settings.homepage.contextualcards; +import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; @@ -30,7 +31,7 @@ import androidx.annotation.VisibleForTesting; public class CardDatabaseHelper extends SQLiteOpenHelper { private static final String TAG = "CardDatabaseHelper"; private static final String DATABASE_NAME = "homepage_cards.db"; - private static final int DATABASE_VERSION = 4; + private static final int DATABASE_VERSION = 5; public static final String CARD_TABLE = "cards"; @@ -119,6 +120,11 @@ public class CardDatabaseHelper extends SQLiteOpenHelper { * Decide the card display full-length width or half-width in screen. */ String SUPPORT_HALF_WIDTH = "support_half_width"; + + /** + * Decide the card is dismissed or not. + */ + String CARD_DISMISSED = "card_dismissed"; } private static final String CREATE_CARD_TABLE = @@ -157,6 +163,8 @@ public class CardDatabaseHelper extends SQLiteOpenHelper { CardColumns.EXPIRE_TIME_MS + " INTEGER, " + CardColumns.SUPPORT_HALF_WIDTH + + " INTEGER DEFAULT 0, " + + CardColumns.CARD_DISMISSED + " INTEGER DEFAULT 0 " + ");"; @@ -190,9 +198,27 @@ public class CardDatabaseHelper extends SQLiteOpenHelper { Cursor getContextualCards() { final SQLiteDatabase db = this.getReadableDatabase(); - Cursor cursor = db.query(CARD_TABLE, null /* columns */, null /* selection */, + final String selection = CardColumns.CARD_DISMISSED + "=0"; + Cursor cursor = db.query(CARD_TABLE, null /* columns */, selection, null /* selectionArgs */, null /* groupBy */, null /* having */, null /* orderBy */); return cursor; } + + /** + * Mark a specific ContextualCard with dismissal flag in the database to indicate that the + * card has been dismissed. + * + * @param cardName the card name of the ContextualCard which is dismissed by user. + * @return updated row number + */ + public int markContextualCardAsDismissed(String cardName) { + final SQLiteDatabase database = this.getWritableDatabase(); + final ContentValues values = new ContentValues(); + values.put(CardColumns.CARD_DISMISSED, 1); + final String selection = CardColumns.NAME + "=?"; + final String[] selectionArgs = {cardName}; + final int rowsUpdated = database.update(CARD_TABLE, values, selection, selectionArgs); + return rowsUpdated; + } } diff --git a/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java b/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java index 4ef982fe17e..b25508b13d5 100644 --- a/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java +++ b/tests/robotests/src/com/android/settings/homepage/contextualcards/CardDatabaseHelperTest.java @@ -74,6 +74,7 @@ public class CardDatabaseHelperTest { CardDatabaseHelper.CardColumns.CARD_ACTION, CardDatabaseHelper.CardColumns.EXPIRE_TIME_MS, CardDatabaseHelper.CardColumns.SUPPORT_HALF_WIDTH, + CardDatabaseHelper.CardColumns.CARD_DISMISSED, }; assertThat(columnNames).isEqualTo(expectedNames); From 95f34b43f4289ff2434b10d5e66283e16ea566b0 Mon Sep 17 00:00:00 2001 From: Antony Sargent Date: Mon, 5 Nov 2018 14:56:28 -0800 Subject: [PATCH 8/8] Check accounts in all profiles on account detail dashboard In cl/5074783 I fixed a problem with account deletion where the account didn't appear to be deleted even when it was. Part of that fix broke the ability to make changes to work profile accounts - this CL fixes that by making sure not to early exit the account detail dashboard unless we've checked the accounts owned by all profiles for the user. Bug: 117965642 Test: make -j40 RunSettingsRoboTests Change-Id: Id034418beb4aec8bd4d10191b4924509d27e55d4 --- .../AccountDetailDashboardFragment.java | 22 ++++---- .../AccountDetailDashboardFragmentTest.java | 51 ++++++++++++++++--- ...ChooseAccountPreferenceControllerTest.java | 2 +- .../shadow/ShadowAccountManager.java | 24 ++++++++- 4 files changed, 80 insertions(+), 19 deletions(-) diff --git a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java index 18e990635d8..78a8614c01f 100644 --- a/src/com/android/settings/accounts/AccountDetailDashboardFragment.java +++ b/src/com/android/settings/accounts/AccountDetailDashboardFragment.java @@ -92,18 +92,18 @@ public class AccountDetailDashboardFragment extends DashboardFragment { @VisibleForTesting void finishIfAccountMissing() { - AccountManager accountManager = (AccountManager) getContext().getSystemService( - Context.ACCOUNT_SERVICE); - boolean accountExists = false; - for (Account account : accountManager.getAccountsByType(mAccount.type)) { - if (account.equals(mAccount)) { - accountExists = true; - break; + final Context context = getContext(); + final UserManager um = context.getSystemService(UserManager.class); + final AccountManager accountManager = (AccountManager) context.getSystemService( + AccountManager.class); + for (UserHandle userHandle : um.getUserProfiles()) { + for (Account account : accountManager.getAccountsAsUser(userHandle.getIdentifier())) { + if (account.equals(mAccount)) { + return; + } } } - if (!accountExists) { - finish(); - } + finish(); } @Override @@ -177,4 +177,4 @@ public class AccountDetailDashboardFragment extends DashboardFragment { accountTypePreferenceLoader.updatePreferenceIntents(prefs, mAccountType, mAccount); } } -} \ No newline at end of file +} diff --git a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java index a4d15676327..26489165d88 100644 --- a/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java +++ b/tests/robotests/src/com/android/settings/accounts/AccountDetailDashboardFragmentTest.java @@ -35,8 +35,10 @@ import android.content.Intent; import android.content.pm.ActivityInfo; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; +import android.content.pm.UserInfo; import android.os.Bundle; import android.os.UserHandle; +import android.os.UserManager; import androidx.fragment.app.FragmentActivity; import androidx.preference.Preference; @@ -44,9 +46,12 @@ import androidx.preference.Preference; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.dashboard.DashboardFeatureProviderImpl; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settings.testutils.shadow.ShadowAccountManager; +import com.android.settings.testutils.shadow.ShadowUserManager; import com.android.settingslib.drawer.CategoryKey; import com.android.settingslib.drawer.Tile; +import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -54,10 +59,11 @@ import org.robolectric.Robolectric; import org.robolectric.RuntimeEnvironment; import org.robolectric.Shadows; import org.robolectric.annotation.Config; -import org.robolectric.shadows.ShadowAccountManager; +import org.robolectric.shadow.api.Shadow; import org.robolectric.util.ReflectionHelpers; @RunWith(SettingsRobolectricTestRunner.class) +@Config(shadows = {ShadowAccountManager.class, ShadowUserManager.class}) public class AccountDetailDashboardFragmentTest { private static final String METADATA_CATEGORY = "com.android.settings.category"; @@ -86,6 +92,11 @@ public class AccountDetailDashboardFragmentTest { when(mFragment.getContext()).thenReturn(mContext); } + @After + public void tearDown() { + ShadowAccountManager.reset(); + } + @Test public void testCategory_isAccountDetail() { assertThat(new AccountDetailDashboardFragment().getCategoryKey()) @@ -152,17 +163,45 @@ public class AccountDetailDashboardFragmentTest { } @Test - @Config(shadows = {ShadowAccountManager.class}) public void onResume_accountMissing_shouldFinish() { + ShadowUserManager userManager = Shadow.extract( + mContext.getSystemService(UserManager.class)); + ShadowAccountManager acctMgr = Shadow.extract( + mContext.getSystemService(AccountManager.class)); + + userManager.addProfile(new UserInfo(1, null, 0)); + acctMgr.addAccountForUser(1, new Account("test@test.com", "com.test")); + mFragment.finishIfAccountMissing(); verify(mFragment).finish(); } @Test - @Config(shadows = {ShadowAccountManager.class}) - public void onResume_accountPresent_shouldNotFinish() { - AccountManager mgr = mContext.getSystemService(AccountManager.class); - Shadows.shadowOf(mgr).addAccount(mFragment.mAccount); + public void onResume_accountPresentOneProfile_shouldNotFinish() { + ShadowUserManager userManager = Shadow.extract( + mContext.getSystemService(UserManager.class)); + ShadowAccountManager acctMgr = Shadow.extract( + mContext.getSystemService(AccountManager.class)); + + userManager.addProfile(new UserInfo(1, null, 0)); + acctMgr.addAccountForUser(1, mFragment.mAccount); + + mFragment.finishIfAccountMissing(); + verify(mFragment, never()).finish(); + } + + @Test + public void onResume_accountPresentTwoProfiles_shouldNotFinish() { + ShadowUserManager userManager = Shadow.extract( + mContext.getSystemService(UserManager.class)); + ShadowAccountManager acctMgr = Shadow.extract( + mContext.getSystemService(AccountManager.class)); + + userManager.addProfile(new UserInfo(1, null, 0)); + userManager.addProfile(new UserInfo(2, null, 0)); + acctMgr.addAccountForUser(1, new Account("test@test.com", "com.test")); + acctMgr.addAccountForUser(2, mFragment.mAccount); + mFragment.finishIfAccountMissing(); verify(mFragment, never()).finish(); } diff --git a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java index 22c2cdb588c..241765e8ecb 100644 --- a/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/accounts/ChooseAccountPreferenceControllerTest.java @@ -76,7 +76,7 @@ public class ChooseAccountPreferenceControllerTest { @After public void tearDown() { ShadowContentResolver.reset(); - ShadowAccountManager.resetAuthenticator(); + ShadowAccountManager.reset(); ShadowRestrictedLockUtilsInternal.clearDisabledTypes(); } diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java index 03aabb5dbb5..4401926c4fd 100644 --- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java +++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowAccountManager.java @@ -16,19 +16,24 @@ package com.android.settings.testutils.shadow; +import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AuthenticatorDescription; +import android.annotation.NonNull; import org.robolectric.annotation.Implementation; import org.robolectric.annotation.Implements; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; @Implements(AccountManager.class) public class ShadowAccountManager{ private static final Map sAuthenticators = new HashMap<>(); + private static final Map> sAccountsByUserId = new HashMap<>(); @Implementation public AuthenticatorDescription[] getAuthenticatorTypesAsUser(int userId) { @@ -39,7 +44,24 @@ public class ShadowAccountManager{ sAuthenticators.put(authenticator.type, authenticator); } - public static void resetAuthenticator() { + public static void reset() { sAuthenticators.clear(); + sAccountsByUserId.clear(); + } + + @Implementation @NonNull + public Account[] getAccountsAsUser(int userId) { + if (sAccountsByUserId.containsKey(userId)) { + return sAccountsByUserId.get(userId).toArray(new Account[0]); + } else { + return new Account[0]; + } + } + + public static void addAccountForUser(int userId, Account account) { + if (!sAccountsByUserId.containsKey(userId)) { + sAccountsByUserId.put(userId, new ArrayList<>()); + } + sAccountsByUserId.get(userId).add(account); } }