diff options
| author | 2023-12-05 16:23:42 -0800 | |
|---|---|---|
| committer | 2023-12-05 18:37:54 -0800 | |
| commit | 1d21f7e97b880a0cd203fd55687658285bcede72 (patch) | |
| tree | e24bbf2b48ce5c72b9e1242149bb7a04e9ab390a | |
| parent | 2230d0d497051e5aea4e79def855749a6a99d65c (diff) | |
Update SyncManager to use PackageMonitor instead of broadcasts.
Bug: 315046091
Test: manual
Change-Id: I0aa2a2ae91512d9442319dcb79902adca20f5ea2
| -rw-r--r-- | services/core/java/com/android/server/content/SyncManager.java | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/services/core/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java index 575b30946fce..5a9f113e79df 100644 --- a/services/core/java/com/android/server/content/SyncManager.java +++ b/services/core/java/com/android/server/content/SyncManager.java @@ -105,6 +105,7 @@ import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.app.IBatteryStats; import com.android.internal.config.appcloning.AppCloningDeviceConfigHelper; +import com.android.internal.content.PackageMonitor; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.internal.notification.SystemNotificationChannels; import com.android.internal.os.BackgroundThread; @@ -438,19 +439,23 @@ public class SyncManager { } }; - private final BroadcastReceiver mForceStoppedReceiver = new BroadcastReceiver() { + private class PackageMonitorImpl extends PackageMonitor { @Override - public void onReceive(Context context, Intent intent) { + public boolean onHandleForceStop(Intent intent, String[] packageNames, int uid, + boolean doit, Bundle extras) { final boolean isLoggable = Log.isLoggable(TAG, Log.DEBUG); - // For now, just log when packages were force-stopped and unstopped for debugging. if (isLoggable) { - if (Intent.ACTION_PACKAGE_RESTARTED.equals(intent.getAction())) { - Log.d(TAG, "Package force-stopped: " - + intent.getData().getSchemeSpecificPart()); - } else if (Intent.ACTION_PACKAGE_UNSTOPPED.equals(intent.getAction())) { - Log.d(TAG, "Package unstopped: " - + intent.getData().getSchemeSpecificPart()); - } + Log.d(TAG, "Package force-stopped: " + Arrays.toString(packageNames) + + ", uid: " + uid); + } + return false; + } + + @Override + public void onPackageUnstopped(String packageName, int uid, Bundle extras) { + final boolean isLoggable = Log.isLoggable(TAG, Log.DEBUG); + if (isLoggable) { + Log.d(TAG, "Package unstopped: " + packageName + ", uid: " + uid); } } }; @@ -718,11 +723,10 @@ public class SyncManager { mContext.registerReceiverAsUser( mUserIntentReceiver, UserHandle.ALL, intentFilter, null, null); - intentFilter = new IntentFilter(); - intentFilter.addAction(Intent.ACTION_PACKAGE_RESTARTED); - intentFilter.addAction(Intent.ACTION_PACKAGE_UNSTOPPED); - intentFilter.addDataScheme("package"); - context.registerReceiver(mForceStoppedReceiver, intentFilter); + + final PackageMonitor packageMonitor = new PackageMonitorImpl(); + packageMonitor.register(mContext, null /* thread */, UserHandle.ALL, + false /* externalStorage */); intentFilter = new IntentFilter(Intent.ACTION_TIME_CHANGED); context.registerReceiver(mOtherIntentsReceiver, intentFilter); |