Loading services/core/java/com/android/server/om/OverlayManagerService.java +35 −20 Original line number Diff line number Diff line Loading @@ -53,9 +53,11 @@ import android.util.AtomicFile; import android.util.Slog; import android.util.SparseArray; import com.android.internal.util.ConcurrentUtils; import com.android.server.FgThread; import com.android.server.IoThread; import com.android.server.LocalServices; import com.android.server.SystemServerInitThreadPool; import com.android.server.SystemService; import com.android.server.pm.Installer; import com.android.server.pm.UserManagerService; Loading @@ -74,6 +76,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; /** Loading Loading @@ -219,6 +222,8 @@ public final class OverlayManagerService extends SystemService { private final AtomicBoolean mPersistSettingsScheduled = new AtomicBoolean(false); private Future<?> mInitCompleteSignal; public OverlayManagerService(@NonNull final Context context, @NonNull final Installer installer) { super(context); Loading @@ -230,7 +235,7 @@ public final class OverlayManagerService extends SystemService { mSettings = new OverlayManagerSettings(); mImpl = new OverlayManagerServiceImpl(mPackageManager, im, mSettings, getDefaultOverlayPackages()); mInitCompleteSignal = SystemServerInitThreadPool.get().submit(() -> { final IntentFilter packageFilter = new IntentFilter(); packageFilter.addAction(ACTION_PACKAGE_ADDED); packageFilter.addAction(ACTION_PACKAGE_CHANGED); Loading @@ -252,6 +257,7 @@ public final class OverlayManagerService extends SystemService { publishBinderService(Context.OVERLAY_SERVICE, mService); publishLocalService(OverlayManagerService.class, this); }, "Init OverlayManagerService"); } @Override Loading @@ -259,6 +265,15 @@ public final class OverlayManagerService extends SystemService { // Intentionally left empty. } @Override public void onBootPhase(int phase) { if (phase == PHASE_SYSTEM_SERVICES_READY) { ConcurrentUtils.waitForFutureNoInterrupt(mInitCompleteSignal, "Wait for OverlayManagerService init"); mInitCompleteSignal = null; } } @Override public void onSwitchUser(final int newUserId) { // ensure overlays in the settings are up-to-date, and propagate Loading Loading
services/core/java/com/android/server/om/OverlayManagerService.java +35 −20 Original line number Diff line number Diff line Loading @@ -53,9 +53,11 @@ import android.util.AtomicFile; import android.util.Slog; import android.util.SparseArray; import com.android.internal.util.ConcurrentUtils; import com.android.server.FgThread; import com.android.server.IoThread; import com.android.server.LocalServices; import com.android.server.SystemServerInitThreadPool; import com.android.server.SystemService; import com.android.server.pm.Installer; import com.android.server.pm.UserManagerService; Loading @@ -74,6 +76,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; import java.util.concurrent.Future; import java.util.concurrent.atomic.AtomicBoolean; /** Loading Loading @@ -219,6 +222,8 @@ public final class OverlayManagerService extends SystemService { private final AtomicBoolean mPersistSettingsScheduled = new AtomicBoolean(false); private Future<?> mInitCompleteSignal; public OverlayManagerService(@NonNull final Context context, @NonNull final Installer installer) { super(context); Loading @@ -230,7 +235,7 @@ public final class OverlayManagerService extends SystemService { mSettings = new OverlayManagerSettings(); mImpl = new OverlayManagerServiceImpl(mPackageManager, im, mSettings, getDefaultOverlayPackages()); mInitCompleteSignal = SystemServerInitThreadPool.get().submit(() -> { final IntentFilter packageFilter = new IntentFilter(); packageFilter.addAction(ACTION_PACKAGE_ADDED); packageFilter.addAction(ACTION_PACKAGE_CHANGED); Loading @@ -252,6 +257,7 @@ public final class OverlayManagerService extends SystemService { publishBinderService(Context.OVERLAY_SERVICE, mService); publishLocalService(OverlayManagerService.class, this); }, "Init OverlayManagerService"); } @Override Loading @@ -259,6 +265,15 @@ public final class OverlayManagerService extends SystemService { // Intentionally left empty. } @Override public void onBootPhase(int phase) { if (phase == PHASE_SYSTEM_SERVICES_READY) { ConcurrentUtils.waitForFutureNoInterrupt(mInitCompleteSignal, "Wait for OverlayManagerService init"); mInitCompleteSignal = null; } } @Override public void onSwitchUser(final int newUserId) { // ensure overlays in the settings are up-to-date, and propagate Loading