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

Commit 4548699c authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Added MasterSystemService.onServiceRemoved() and some other nit fixes..."

parents ee8fbc72 7ed7b2cc
Loading
Loading
Loading
Loading
+15 −16
Original line number Diff line number Diff line
@@ -166,12 +166,12 @@ public final class AutofillManagerService
        context.registerReceiver(mBroadcastReceiver, filter, null, FgThread.getHandler());
    }

    @Override // from MasterSystemService
    @Override // from AbstractMasterSystemService
    protected String getServiceSettingsProperty() {
        return Settings.Secure.AUTOFILL_SERVICE;
    }

    @Override // from MasterSystemService
    @Override // from AbstractMasterSystemService
    protected void registerForExtraSettingsChanges(@NonNull ContentResolver resolver,
            @NonNull ContentObserver observer) {
        resolver.registerContentObserver(Settings.Global.getUriFor(
@@ -188,7 +188,7 @@ public final class AutofillManagerService
                UserHandle.USER_ALL);
    }

    @Override // from MasterSystemService
    @Override // from AbstractMasterSystemService
    protected void onSettingsChanged(int userId, @NonNull String property) {
        switch (property) {
            case Settings.Global.AUTOFILL_LOGGING_LEVEL:
@@ -210,25 +210,24 @@ public final class AutofillManagerService
        }
    }

    @Override // from MasterSystemService
    protected AutofillManagerServiceImpl newServiceLocked(int resolvedUserId, boolean disabled) {
    @Override // from AbstractMasterSystemService
    protected AutofillManagerServiceImpl newServiceLocked(@UserIdInt int resolvedUserId,
            boolean disabled) {
        return new AutofillManagerServiceImpl(this, mLock, mRequestsHistory,
                mUiLatencyHistory, mWtfHistory, resolvedUserId, mUi, mAutofillCompatState,
                disabled);
    }

    @Override // MasterSystemService
    protected AutofillManagerServiceImpl removeCachedServiceLocked(int userId) {
        final AutofillManagerServiceImpl service = super.removeCachedServiceLocked(userId);
        if (service != null) {
    @Override // AbstractMasterSystemService
    protected void onServiceRemoved(@NonNull AutofillManagerServiceImpl service,
            @UserIdInt int userId) {
        service.destroyLocked();
        mAutofillCompatState.removeCompatibilityModeRequests(userId);
    }
        return service;
    }

    @Override // from MasterSystemService
    protected void onServiceEnabledLocked(@NonNull AutofillManagerServiceImpl service, int userId) {
    @Override // from AbstractMasterSystemService
    protected void onServiceEnabledLocked(@NonNull AutofillManagerServiceImpl service,
            @UserIdInt int userId) {
        addCompatibilityModeRequestsLocked(service, userId);
    }

@@ -245,7 +244,7 @@ public final class AutofillManagerService
    }

    // Called by Shell command.
    void destroySessions(int userId, IResultReceiver receiver) {
    void destroySessions(@UserIdInt int userId, IResultReceiver receiver) {
        Slog.i(TAG, "destroySessions() for userId " + userId);
        getContext().enforceCallingPermission(MANAGE_AUTO_FILL, TAG);

+14 −6
Original line number Diff line number Diff line
@@ -244,7 +244,7 @@ public abstract class AbstractMasterSystemService<S extends AbstractPerUserSyste
     */
    @GuardedBy("mLock")
    @Nullable
    protected S peekServiceForUserLocked(int userId) {
    protected S peekServiceForUserLocked(@UserIdInt int userId) {
        final int resolvedUserId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
                Binder.getCallingUid(), userId, false, false, null, null);
        return mServicesCache.get(resolvedUserId);
@@ -254,7 +254,7 @@ public abstract class AbstractMasterSystemService<S extends AbstractPerUserSyste
     * Updates a cached service for a given user.
     */
    @GuardedBy("mLock")
    protected void updateCachedServiceLocked(int userId) {
    protected void updateCachedServiceLocked(@UserIdInt int userId) {
        updateCachedServiceLocked(userId, isDisabledLocked(userId));
    }

@@ -262,7 +262,7 @@ public abstract class AbstractMasterSystemService<S extends AbstractPerUserSyste
     * Checks whether the service is disabled (through {@link UserManager} restrictions) for the
     * given user.
     */
    protected boolean isDisabledLocked(int userId) {
    protected boolean isDisabledLocked(@UserIdInt int userId) {
        return mDisabledUsers == null ? false : mDisabledUsers.get(userId);
    }

@@ -274,7 +274,7 @@ public abstract class AbstractMasterSystemService<S extends AbstractPerUserSyste
     * @return service for the user.
     */
    @GuardedBy("mLock")
    protected S updateCachedServiceLocked(int userId, boolean disabled) {
    protected S updateCachedServiceLocked(@UserIdInt int userId, boolean disabled) {
        final S service = getServiceForUserLocked(userId);
        if (service != null) {
            service.updateLocked(disabled);
@@ -304,7 +304,7 @@ public abstract class AbstractMasterSystemService<S extends AbstractPerUserSyste
     * <p>By default doesn't do anything, but can be overridden by subclasses.
     */
    @SuppressWarnings("unused")
    protected void onServiceEnabledLocked(S service, @UserIdInt int userId) {
    protected void onServiceEnabledLocked(@NonNull S service, @UserIdInt int userId) {
    }

    /**
@@ -314,14 +314,22 @@ public abstract class AbstractMasterSystemService<S extends AbstractPerUserSyste
     */
    @GuardedBy("mLock")
    @NonNull
    protected S removeCachedServiceLocked(@UserIdInt int userId) {
    private S removeCachedServiceLocked(@UserIdInt int userId) {
        final S service = peekServiceForUserLocked(userId);
        if (service != null) {
            mServicesCache.delete(userId);
            onServiceRemoved(service, userId);
        }
        return service;
    }

    /**
     * Called after the service is removed from the cache.
     */
    @SuppressWarnings("unused")
    protected void onServiceRemoved(@NonNull S service, @UserIdInt int userId) {
    }

    /**
     * Visits all services in the cache.
     */
+7 −9
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.server.intelligence;
import static android.content.Context.INTELLIGENCE_MANAGER_SERVICE;

import android.annotation.NonNull;
import android.annotation.UserIdInt;
import android.app.ActivityManagerInternal;
import android.content.ComponentName;
import android.content.Context;
@@ -59,14 +60,14 @@ public final class IntelligenceManagerService
        super(context, UserManager.DISALLOW_INTELLIGENCE_CAPTURE);
    }

    @Override // from MasterSystemService
    @Override // from AbstractMasterSystemService
    protected String getServiceSettingsProperty() {
        // TODO(b/111276913): STOPSHIP temporary settings, until it's set by resourcs + cmd
        return "intel_service";
    }

    @Override // from MasterSystemService
    protected IntelligencePerUserService newServiceLocked(int resolvedUserId,
    @Override // from AbstractMasterSystemService
    protected IntelligencePerUserService newServiceLocked(@UserIdInt int resolvedUserId,
            boolean disabled) {
        return new IntelligencePerUserService(this, mLock, resolvedUserId);
    }
@@ -79,13 +80,10 @@ public final class IntelligenceManagerService
    }

    @Override // from AbstractMasterSystemService
    protected IntelligencePerUserService removeCachedServiceLocked(int userId) {
        final IntelligencePerUserService service = super.removeCachedServiceLocked(userId);
        if (service != null) {
    protected void onServiceRemoved(@NonNull IntelligencePerUserService service,
            @UserIdInt int userId) {
        service.destroyLocked();
    }
        return service;
    }

    private ActivityManagerInternal getAmInternal() {
        synchronized (mLock) {