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

Commit b6336476 authored by Piyush Mehrotra's avatar Piyush Mehrotra Committed by Android (Google) Code Review
Browse files

Merge "Unregister transport when user disables corresponding package. Register...

Merge "Unregister transport when user disables corresponding package. Register transport when user puts package in default enable state."
parents b10f57a3 f75f7d99
Loading
Loading
Loading
Loading
+20 −0
Original line number Diff line number Diff line
@@ -16,7 +16,9 @@

package com.android.server.backup;

import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;

import android.annotation.Nullable;
@@ -166,6 +168,17 @@ public class TransportManager {
                    onPackageEnabled(packageName);
                    return;
                }
                case COMPONENT_ENABLED_STATE_DEFAULT: {
                    // Package is set to its default enabled state (as specified in its manifest).
                    // Unless explicitly specified in manifest, the default enabled state
                    // is 'enabled'. Here, we assume that default state always means enabled.
                    if (MORE_DEBUG) {
                        Slog.d(TAG, "Package " + packageName
                                + " was put in default enabled state.");
                    }
                    onPackageEnabled(packageName);
                    return;
                }
                case COMPONENT_ENABLED_STATE_DISABLED: {
                    if (MORE_DEBUG) {
                        Slog.d(TAG, "Package " + packageName + " was disabled.");
@@ -173,6 +186,13 @@ public class TransportManager {
                    onPackageDisabled(packageName);
                    return;
                }
                case COMPONENT_ENABLED_STATE_DISABLED_USER: {
                    if (MORE_DEBUG) {
                        Slog.d(TAG, "Package " + packageName + " was disabled by user.");
                    }
                    onPackageDisabled(packageName);
                    return;
                }
                default: {
                    Slog.w(TAG, "Package " + packageName + " enabled setting: " + enabled);
                    return;
+36 −6
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.server.backup;

import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DEFAULT;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_DISABLED_USER;
import static android.content.pm.PackageManager.COMPONENT_ENABLED_STATE_ENABLED;

import static com.android.server.backup.testing.TransportData.genericTransport;
@@ -326,7 +327,25 @@ public class TransportManagerTest {
                .setApplicationEnabledSetting(
                        PACKAGE_A,
                        Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED),
                        0 /*flags*/);
                        /* flags */ 0);
        transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);

        assertRegisteredTransports(transportManager, singletonList(mTransportB1));
        verify(mListener, never()).onTransportRegistered(any(), any());
    }

    @Test
    public void testOnPackageChanged_whenPackageChanged_packageDisabledByUserUnregistersTransport()
            throws Exception {
        TransportManager transportManager =
                createTransportManagerWithRegisteredTransports(mTransportA1, mTransportB1);
        reset(mListener);

        mContext.getPackageManager()
                .setApplicationEnabledSetting(
                        PACKAGE_A,
                        Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED_USER),
                        /* flags */ 0);
        transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);

        assertRegisteredTransports(transportManager, singletonList(mTransportB1));
@@ -344,7 +363,7 @@ public class TransportManagerTest {
                .setApplicationEnabledSetting(
                        PACKAGE_A,
                        Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED),
                        0 /*flags*/);
                        /* flags */ 0);
        transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);

        assertRegisteredTransports(transportManager, singletonList(mTransportB1));
@@ -354,7 +373,7 @@ public class TransportManagerTest {
                .setApplicationEnabledSetting(
                        PACKAGE_A,
                        Integer.valueOf(COMPONENT_ENABLED_STATE_ENABLED),
                        0 /*flags*/);
                        /* flags */ 0);
        transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);

        assertRegisteredTransports(transportManager, asList(mTransportA1, mTransportB1));
@@ -363,21 +382,32 @@ public class TransportManagerTest {
    }

    @Test
    public void testOnPackageChanged_whenPackageChanged_unknownComponentStateIsIgnored()
    public void testOnPackageChanged_whenPackageChanged_packageDefaultEnabledRegistersTransport()
            throws Exception {
        TransportManager transportManager =
                createTransportManagerWithRegisteredTransports(mTransportA1, mTransportB1);
        reset(mListener);

        mContext.getPackageManager()
                .setApplicationEnabledSetting(
                        PACKAGE_A,
                        Integer.valueOf(COMPONENT_ENABLED_STATE_DISABLED_USER),
                        /* flags */ 0);
        transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);

        assertRegisteredTransports(transportManager, singletonList(mTransportB1));
        verify(mListener, never()).onTransportRegistered(any(), any());

        mContext.getPackageManager()
                .setApplicationEnabledSetting(
                        PACKAGE_A,
                        Integer.valueOf(COMPONENT_ENABLED_STATE_DEFAULT),
                        0 /*flags*/);
                        /* flags */ 0);
        transportManager.onPackageChanged(PACKAGE_A, PACKAGE_A);

        assertRegisteredTransports(transportManager, asList(mTransportA1, mTransportB1));
        verify(mListener, never()).onTransportRegistered(any(), any());
        verify(mListener)
                .onTransportRegistered(mTransportA1.transportName, mTransportA1.transportDirName);
    }

    @Test