Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3006e5be authored by /e/ robot's avatar /e/ robot
Browse files

Merge remote-tracking branch 'origin/lineage-21.0' into a14

parents 85b19dd5 4c94341e
Loading
Loading
Loading
Loading
+60 −0
Original line number Diff line number Diff line
@@ -15,18 +15,78 @@
     limitations under the License.
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
    <string name="keyboard_extras_title">Extras</string>
    <string name="advanced_keyboard_settings_title">Cunfiguratzione avantzada</string>
    <string name="adb_enable_root">Curretzione de errores cun atzessu root</string>
    <string name="adb_enable_summary_root">Permite s\'esecutzione de sa curretzione de Android cun atzessu root</string>
    <string name="backup_transport_setting_label">Muda su frunidore de còpias de seguresa</string>
    <string name="backup_transport_title">Seletziona su frunidore de còpias de seguresa</string>
    <string name="berry_black_theme_title">Nieddu puru</string>
    <string name="berry_black_theme_summary">Isfundu nieddu puru pro su tema iscuru</string>
    <string name="lineagelicense_title">Lissèntzia LineageOS</string>
    <string name="show_dev_countdown_cm">{count, plural,
      one {}=1      {T\'ammancat # passu a s\'ativatzione de sa cunfiguratzione de isvilupu.}
      other   {T\'ammancant # passos a s\'ativatzione de sa cunfiguratzione de isvilupu.}
    }</string>
    <string name="show_dev_on_cm">As ativadu sa cunfiguratzione de isvilupu.</string>
    <string name="show_dev_already_cm">Non serbit, as giai ativadu sa cunfiguratzione de isvilupu.</string>
    <string name="status_bar_double_tap_to_sleep_title">Toca pro istudare s\'ischermu</string>
    <string name="status_bar_double_tap_to_sleep_summary">Toca duas bortas sa barra de istadu o s\'ischermu de blocu pro istudare s\'ischermu</string>
    <string name="tethering_allow_vpn_upstreams_title">Permite chi is clientes impreent VPN</string>
    <string name="tethering_allow_vpn_upstreams_summary">Permite chi is clientes de is puntos de atzessu impreent is connessiones VPN de custu dispositivu pro sa connessione printzipale</string>
    <string name="lock_settings_picker_pattern_size_message">Sèbera sa mannària de sa secuèntzia</string>
    <string name="lockpattern_settings_enable_error_path_title">Mustra secuèntzia isballiada</string>
    <string name="lockpattern_settings_enable_dots_title">Mustra is puntos de sa secuèntzia</string>
    <string name="min_refresh_rate_title">Frecuèntzia de atualizatzione mìnima</string>
    <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Agata su sensore de imprentas in sa parte frontale de sa tauledda.</string>
    <string name="fingerprint_enroll_find_sensor_message_front" product="device">Agata su sensore de imprentas in sa parte frontale de su dispositivu.</string>
    <string name="fingerprint_enroll_find_sensor_message_front" product="default">Agata su sensore de imprentas in sa parte frontale de su telèfonu.</string>
    <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Agata su sensore de imprentas in sa parte de palas de sa tauledda.</string>
    <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Agata su sensore de imprentas in sa parte de palas de su dispositivu.</string>
    <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Agata su sensore de imprentas in sa parte de palas de su telèfonu.</string>
    <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Agata su sensore de imprentas in sa parte laterale de sa tauledda.</string>
    <string name="fingerprint_enroll_find_sensor_message_side" product="device">Agata su sensore de imprentas in sa parte laterale de su dispositivu.</string>
    <string name="fingerprint_enroll_find_sensor_message_side" product="default">Agata su sensore de imprentas in sa parte laterale de su telèfonu.</string>
    <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toca su sensore in sa parte frontale de sa tauledda.</string>
    <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toca su sensore in sa parte frontale de su dispositivu.</string>
    <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toca su sensore in sa parte frontale de su telèfonu.</string>
    <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toca su sensore in sa parte de palas de sa tauledda.</string>
    <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toca su sensore in sa parte de palas de su dispositivu.</string>
    <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toca su sensore in sa parte de palas de su telèfonu.</string>
    <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toca su sensore in sa parte laterale de sa tauledda.</string>
    <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toca su sensore in sa parte laterale de su dispositivu.</string>
    <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toca su sensore in sa parte laterale de su telèfonu.</string>
    <string name="security_settings_require_screen_on_to_auth_with_proximity_description">Toca su sensore pro isblocare, fintzas cun s\'ischermu istudadu. Su sensore de prossimidade èvitat su blocu atzidentale.</string>
    <string name="show_navbar_hint_title">Cussìgios de navigatzione</string>
    <string name="show_navbar_hint_summary">Mustra sa barra de cussìgios de navigatzione in sa parte inferiore de s\'ischermu</string>
    <string name="app_notification_sound_timeout_title">Tempus mìnimu intre is sonos de notìfica</string>
    <string name="app_notification_sound_timeout_summary_template">Permite sonos o vibratzione isceti una borta onni <xliff:g id="duration">%1$s</xliff:g></string>
    <string name="app_notification_sound_timeout_value_none">Nissunu lìmite</string>
    <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
    <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
    <string name="app_notification_sound_timeout_value_1_minute">1 minutu</string>
    <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
    <string name="app_notification_sound_timeout_value_15_minutes">15 minutos</string>
    <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
    <string name="auto_brightness_one_shot_title">Lugore automàticu sìngulu</string>
    <string name="auto_brightness_one_shot_summary">Su lugore at a èssere reguladu isceti comente s\'ischermu est allutu</string>
    <string name="data_usage_app_restrict_all">Permite s\'atzessu a sa rete</string>
    <string name="data_usage_app_restrict_all_summary">Ativa s\'impreu de sa rete</string>
    <string name="data_usage_app_restrict_mobile">Datos mòbiles</string>
    <string name="data_usage_app_restrict_mobile_summary">Ativa s\'impreu de datos mòbiles</string>
    <string name="data_usage_app_restrict_vpn">Datos VPN</string>
    <string name="data_usage_app_restrict_vpn_summary">Ativa s\'impreu de datos VPN</string>
    <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
    <string name="data_usage_app_restrict_wifi_summary">Abìlita s\'impreu de sos datos Wi\u2011Fi</string>
    <string name="unlock_scramble_pin_layout_title">Dispositzione aleatòria</string>
    <string name="unlock_scramble_pin_layout_summary">Dispone is teclas de su PIN in manera aleatòria a s\'isblocu de su dispositivu</string>
    <string name="proximity_wake_title">Impedi s\'ativatzione atzidentale</string>
    <string name="proximity_wake_summary">Controlla su sensore de prossimidade in antis de allùghere s\'ischermu</string>
    <string name="touchscreen_gesture_settings_title">Gestos de su pannellu tàtile</string>
    <string name="touchscreen_gesture_settings_summary">Faghe vàrios movimentos tochende s\'ischermu pro atziones lestras</string>
    <string name="wake_when_plugged_or_unplugged_title">Allughe cando ddu connetes</string>
    <string name="wake_when_plugged_or_unplugged_summary">Ativa s\'ischermu cando est connètida o disconnètida una fonte de alimentatzione</string>
    <string name="fast_charging_title">Càrriga lestra</string>
    <string name="assisted_gps">Imprea su GPS assistidu</string>
    <string name="battery_technology">Tecnologia</string>
    <string name="battery_health">Salude</string>
+9 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.settings.security;

import android.content.ContentResolver;
import android.content.Context;
import android.os.UserManager;
import android.provider.Settings;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
@@ -91,6 +92,14 @@ public class ContentProtectionTogglePreferenceController extends TogglePreferenc
        mEnforcedAdmin = getEnforcedAdmin();
        if (mSwitchBar != null && mEnforcedAdmin != null) {
            mSwitchBar.setDisabledByAdmin(mEnforcedAdmin);
            return;
        }

        UserManager userManager = mContext.getSystemService(UserManager.class);
        if (userManager != null
                && userManager.isGuestUser()
                && mSwitchBar != null) {
            mSwitchBar.setEnabled(false);
        }
    }

+40 −0
Original line number Diff line number Diff line
@@ -22,8 +22,11 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import static org.robolectric.Shadows.shadowOf;

import android.content.Context;
import android.platform.test.flag.junit.SetFlagsRule;
@@ -33,6 +36,7 @@ import androidx.preference.PreferenceScreen;
import androidx.test.core.app.ApplicationProvider;

import com.android.settings.testutils.shadow.ShadowUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.widget.SettingsMainSwitchPreference;
import com.android.settingslib.RestrictedLockUtils;

@@ -52,6 +56,7 @@ import org.robolectric.annotation.Config;
@Config(
        shadows = {
            ShadowUtils.class,
            ShadowUserManager.class,
        })
public class ContentProtectionTogglePreferenceControllerTest {

@@ -65,10 +70,13 @@ public class ContentProtectionTogglePreferenceControllerTest {
    private final Context mContext = ApplicationProvider.getApplicationContext();
    private ContentProtectionTogglePreferenceController mController;
    private int mSettingBackupValue;
    private ShadowUserManager mShadowUserManager;

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mShadowUserManager = ShadowUserManager.getShadow();
        mShadowUserManager.setGuestUser(false);
        mController = new TestContentProtectionTogglePreferenceController();
        mSwitchPreference = new SettingsMainSwitchPreference(mContext);
        when(mMockScreen.findPreference(mController.getPreferenceKey()))
@@ -117,6 +125,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
        mController.updateState(mockSwitchPreference);

        verify(mockSwitchPreference, never()).setDisabledByAdmin(any());
        verify(mockSwitchPreference, never()).setEnabled(false);
    }

    @Test
@@ -132,6 +141,36 @@ public class ContentProtectionTogglePreferenceControllerTest {
        mController.updateState(mockSwitchPreference);

        verify(mockSwitchPreference).setDisabledByAdmin(mAdmin);
        verify(mockSwitchPreference, never()).setEnabled(false);
    }

    @Test
    public void updateState_notFullyManagedMode_guestUser_switchBarDisabled() {
        mShadowUserManager.setGuestUser(true);
        SettingsMainSwitchPreference mockSwitchPreference =
                mock(SettingsMainSwitchPreference.class);
        when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());

        mController = new TestContentProtectionTogglePreferenceController();
        mController.displayPreference(mMockScreen);
        mController.updateState(mockSwitchPreference);

        verify(mockSwitchPreference).setEnabled(false);
    }

    @Test
    public void updateState_notFullyManagedMode_nonGuestUser_switchBarEnabled() {
        SettingsMainSwitchPreference mockSwitchPreference =
                mock(SettingsMainSwitchPreference.class);
        when(mMockScreen.findPreference(any())).thenReturn(mockSwitchPreference);
        when(mockSwitchPreference.getKey()).thenReturn(mController.getPreferenceKey());

        mController = new TestContentProtectionTogglePreferenceController();
        mController.displayPreference(mMockScreen);
        mController.updateState(mockSwitchPreference);

        verify(mockSwitchPreference, never()).setEnabled(false);
    }

    @Test
@@ -155,6 +194,7 @@ public class ContentProtectionTogglePreferenceControllerTest {
        mController.updateState(mockSwitchPreference);

        assertThat(mController.isChecked()).isFalse();
        verify(mockSwitchPreference, never()).setEnabled(false);
    }

    @Test