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

Commit 5b1faf1b authored by Vladislav Kuzkokov's avatar Vladislav Kuzkokov
Browse files

Add policy disclosure for printing.

Bug: 64140119
Test: make -j40 RunSettingsRoboTests
Change-Id: Ib453c492f1dc9e6f9bd4019104dfd3eafcd0a8b4
parent 03017fc9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -50,7 +50,7 @@
        settings:controller="com.android.settings.connecteddevice.BluetoothOnWhileDrivingPreferenceController"
        android:order="-2"/>

    <Preference
    <com.android.settingslib.RestrictedPreference
        android:key="connected_device_printing"
        android:title="@string/print_settings"
        android:summary="@string/summary_placeholder"
+7 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.settings.print;

import android.content.Context;
import android.content.pm.PackageManager;
import android.os.UserManager;
import android.print.PrintJob;
import android.print.PrintJobId;
import android.print.PrintJobInfo;
@@ -29,6 +30,7 @@ import android.support.v7.preference.PreferenceScreen;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
import com.android.settings.wrapper.PrintManagerWrapper;
import com.android.settingslib.RestrictedPreference;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
@@ -41,12 +43,14 @@ import java.util.List;
public class PrintSettingPreferenceController extends BasePreferenceController implements
        LifecycleObserver, OnStart, OnStop, PrintManager.PrintJobStateChangeListener {

    private static final String KEY_PRINTING_SETTINGS = "connected_device_printing";

    private final PackageManager mPackageManager;
    private PrintManagerWrapper mPrintManager;
    private Preference mPreference;

    public PrintSettingPreferenceController(Context context) {
        super(context, "connected_device_printing" /* preferenceKey */);
        super(context, KEY_PRINTING_SETTINGS);
        mPackageManager = context.getPackageManager();
        mPrintManager = new PrintManagerWrapper(context);
    }
@@ -84,6 +88,8 @@ public class PrintSettingPreferenceController extends BasePreferenceController i
            return;
        }
        preference.setSummary(getSummary());
        ((RestrictedPreference) preference).checkRestrictionAndSetDisabled(
                UserManager.DISALLOW_PRINTING);
    }

    @Override
+17 −4
Original line number Diff line number Diff line
@@ -20,26 +20,29 @@ import static android.arch.lifecycle.Lifecycle.Event.ON_START;
import static android.arch.lifecycle.Lifecycle.Event.ON_STOP;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.arch.lifecycle.LifecycleOwner;
import android.content.Context;
import android.os.UserManager;
import android.print.PrintJob;
import android.print.PrintJobInfo;
import android.print.PrintManager;
import android.printservice.PrintServiceInfo;
import android.support.v7.preference.Preference;

import com.android.settings.R;
import com.android.settings.TestConfig;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.wrapper.PrintManagerWrapper;
import com.android.settingslib.RestrictedPreference;
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.Mockito;
import org.mockito.MockitoAnnotations;
@@ -57,8 +60,11 @@ public class PrintSettingsPreferenceControllerTest {

    @Mock
    private PrintManagerWrapper mPrintManager;
    @Mock
    private UserManager mUserManager;
    private Context mContext;
    private Preference mPreference;
    @Mock
    private RestrictedPreference mPreference;
    private PrintSettingPreferenceController mController;
    private LifecycleOwner mLifecycleOwner;
    private Lifecycle mLifecycle;
@@ -66,8 +72,9 @@ public class PrintSettingsPreferenceControllerTest {
    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
        mContext = RuntimeEnvironment.application;
        mPreference = new Preference(mContext);
        mContext = spy(RuntimeEnvironment.application);
        when(mContext.getSystemService(Context.USER_SERVICE)).thenReturn(mUserManager);
        mPreference = spy(new RestrictedPreference(mContext));
        mController = new PrintSettingPreferenceController(mContext);
        mLifecycleOwner = () -> mLifecycle;
        mLifecycle = new Lifecycle(mLifecycleOwner);
@@ -122,4 +129,10 @@ public class PrintSettingsPreferenceControllerTest {
        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.print_settings_summary_no_service));
    }

    @Test
    public void updateState_shouldCheckRestriction() {
        mController.updateState(mPreference);
        verify(mPreference).checkRestrictionAndSetDisabled(UserManager.DISALLOW_PRINTING);
    }
}