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

Commit 99df3bc6 authored by Eugene Susla's avatar Eugene Susla Committed by Android (Google) Code Review
Browse files

Merge "Clear user-set info when package gets its data cleared" into sc-dev

parents 0dfd9df6 0224ebbf
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -287,6 +287,7 @@ abstract public class ManagedServices {
                                    && !mDefaultComponents.contains(currentComponent)) {
                                if (approved.remove(currentComponent.flattenToString())) {
                                    disabledComponents.add(currentComponent);
                                    clearUserSetFlagLocked(currentComponent, userId);
                                    changed = true;
                                }
                            }
@@ -309,6 +310,12 @@ abstract public class ManagedServices {
        return changes;
    }

    private boolean clearUserSetFlagLocked(ComponentName component, int userId) {
        String approvedValue = getApprovedValue(component.flattenToString());
        ArraySet<String> userSet = mUserSetServices.get(userId);
        return userSet != null && userSet.remove(approvedValue);
    }

    protected int getBindFlags() {
        return BIND_AUTO_CREATE | BIND_FOREGROUND_SERVICE | BIND_ALLOW_WHITELIST_MANAGEMENT;
    }
+14 −3
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ import android.util.TypedXmlPullParser;
import android.util.TypedXmlSerializer;
import android.util.Xml;

import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.XmlUtils;
import com.android.server.UiServiceTestCase;

@@ -70,8 +69,6 @@ import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlSerializer;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -516,6 +513,20 @@ public class ManagedServicesTest extends UiServiceTestCase {
        assertTrue(components.contains(new ComponentName("package", "default")));
    }

    @Test
    public void resetPackage_clearsUserSet() {
        // setup
        ManagedServices service =
                new TestManagedServices(
                        getContext(), mLock, mUserProfiles, mIpm, APPROVAL_BY_COMPONENT);
        String componentName = "package/user-allowed";
        service.addApprovedList(componentName, 0, true);

        service.resetComponents("package", 0);

        assertFalse(service.isPackageOrComponentUserSet(componentName, 0));
    }

    /** Test that backup only writes packages/components that belong to the target user. */
    @Test
    public void testWriteXml_onlyBackupsForTargetUser() throws Exception {