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

Commit b81944de authored by Jordan Demeulenaere's avatar Jordan Demeulenaere Committed by Android (Google) Code Review
Browse files

Merge changes Ibc9d5374,I28a14ab9 into tm-qpr-dev

* changes:
  Fix parental control dialog
  Fix NPE in QSSecurityFooterUtils
parents be4e61e5 05bfd051
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -247,7 +247,7 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener {

        Icon icon;
        ContentDescription contentDescription = null;
        if (isParentalControlsEnabled) {
        if (isParentalControlsEnabled && securityModel.getDeviceAdminIcon() != null) {
            icon = new Icon.Loaded(securityModel.getDeviceAdminIcon(), contentDescription);
        } else if (vpnName != null || vpnNameWorkProfile != null) {
            if (securityModel.isVpnBranded()) {
@@ -476,7 +476,7 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener {
    @VisibleForTesting
    View createDialogView(Context quickSettingsContext) {
        if (mSecurityController.isParentalControlsEnabled()) {
            return createParentalControlsDialogView();
            return createParentalControlsDialogView(quickSettingsContext);
        }
        return createOrganizationDialogView(quickSettingsContext);
    }
@@ -579,8 +579,8 @@ public class QSSecurityFooterUtils implements DialogInterface.OnClickListener {
        return dialogView;
    }

    private View createParentalControlsDialogView() {
        View dialogView = LayoutInflater.from(mContext)
    private View createParentalControlsDialogView(Context quickSettingsContext) {
        View dialogView = LayoutInflater.from(quickSettingsContext)
                .inflate(R.layout.quick_settings_footer_dialog_parental_controls, null, false);

        DeviceAdminInfo info = mSecurityController.getDeviceAdminInfo();
+8 −4
Original line number Diff line number Diff line
@@ -703,28 +703,32 @@ public class QSSecurityFooterTest extends SysuiTestCase {
    public void testParentalControls() {
        // Make sure the security footer is visible, so that the images are updated.
        when(mSecurityController.isProfileOwnerOfOrganizationOwnedDevice()).thenReturn(true);

        when(mSecurityController.isParentalControlsEnabled()).thenReturn(true);

        // We use the default icon when there is no admin icon.
        when(mSecurityController.getIcon(any())).thenReturn(null);
        mFooter.refreshState();
        TestableLooper.get(this).processAllMessages();
        assertEquals(mContext.getString(R.string.quick_settings_disclosure_parental_controls),
                mFooterText.getText());
        assertEquals(DEFAULT_ICON_ID, mPrimaryFooterIcon.getLastImageResource());

        Drawable testDrawable = new VectorDrawable();
        when(mSecurityController.getIcon(any())).thenReturn(testDrawable);
        assertNotNull(mSecurityController.getIcon(null));

        mFooter.refreshState();

        TestableLooper.get(this).processAllMessages();

        assertEquals(mContext.getString(R.string.quick_settings_disclosure_parental_controls),
                mFooterText.getText());
        assertEquals(View.VISIBLE, mPrimaryFooterIcon.getVisibility());

        assertEquals(testDrawable, mPrimaryFooterIcon.getDrawable());

        // Ensure the primary icon is back to default after parental controls are gone
        when(mSecurityController.isParentalControlsEnabled()).thenReturn(false);
        mFooter.refreshState();
        TestableLooper.get(this).processAllMessages();

        assertEquals(DEFAULT_ICON_ID, mPrimaryFooterIcon.getLastImageResource());
    }