Merge "Move receiver registration to background thread" into tm-qpr-dev

This commit is contained in:
Peter Kalauskas
2022-11-14 20:05:05 +00:00
committed by Android (Google) Code Review
2 changed files with 37 additions and 13 deletions

View File

@@ -17,6 +17,7 @@
package com.android.systemui.dagger; package com.android.systemui.dagger;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.ActivityTaskManager; import android.app.ActivityTaskManager;
import android.app.AlarmManager; import android.app.AlarmManager;
@@ -68,6 +69,7 @@ import android.os.PowerManager;
import android.os.ServiceManager; import android.os.ServiceManager;
import android.os.UserManager; import android.os.UserManager;
import android.os.Vibrator; import android.os.Vibrator;
import android.os.storage.StorageManager;
import android.permission.PermissionManager; import android.permission.PermissionManager;
import android.safetycenter.SafetyCenterManager; import android.safetycenter.SafetyCenterManager;
import android.service.dreams.DreamService; import android.service.dreams.DreamService;
@@ -109,6 +111,7 @@ import dagger.Provides;
/** /**
* Provides Non-SystemUI, Framework-Owned instances to the dependency graph. * Provides Non-SystemUI, Framework-Owned instances to the dependency graph.
*/ */
@SuppressLint("NonInjectedService")
@Module @Module
public class FrameworkServicesModule { public class FrameworkServicesModule {
@Provides @Provides
@@ -462,7 +465,13 @@ public class FrameworkServicesModule {
@Provides @Provides
@Singleton @Singleton
static SubscriptionManager provideSubcriptionManager(Context context) { static StorageManager provideStorageManager(Context context) {
return context.getSystemService(StorageManager.class);
}
@Provides
@Singleton
static SubscriptionManager provideSubscriptionManager(Context context) {
return context.getSystemService(SubscriptionManager.class); return context.getSystemService(SubscriptionManager.class);
} }

View File

@@ -46,6 +46,7 @@ import com.android.internal.R;
import com.android.internal.messages.nano.SystemMessageProto.SystemMessage; import com.android.internal.messages.nano.SystemMessageProto.SystemMessage;
import com.android.systemui.CoreStartable; import com.android.systemui.CoreStartable;
import com.android.systemui.SystemUIApplication; import com.android.systemui.SystemUIApplication;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.util.NotificationChannels; import com.android.systemui.util.NotificationChannels;
@@ -61,15 +62,24 @@ public class StorageNotification implements CoreStartable {
private static final String ACTION_SNOOZE_VOLUME = "com.android.systemui.action.SNOOZE_VOLUME"; private static final String ACTION_SNOOZE_VOLUME = "com.android.systemui.action.SNOOZE_VOLUME";
private static final String ACTION_FINISH_WIZARD = "com.android.systemui.action.FINISH_WIZARD"; private static final String ACTION_FINISH_WIZARD = "com.android.systemui.action.FINISH_WIZARD";
private final Context mContext; private final Context mContext;
private final BroadcastDispatcher mBroadcastDispatcher;
// TODO: delay some notifications to avoid bumpy fast operations // TODO: delay some notifications to avoid bumpy fast operations
private NotificationManager mNotificationManager; private final NotificationManager mNotificationManager;
private StorageManager mStorageManager; private final StorageManager mStorageManager;
@Inject @Inject
public StorageNotification(Context context) { public StorageNotification(
Context context,
BroadcastDispatcher broadcastDispatcher,
NotificationManager notificationManager,
StorageManager storageManager
) {
mContext = context; mContext = context;
mBroadcastDispatcher = broadcastDispatcher;
mNotificationManager = notificationManager;
mStorageManager = storageManager;
} }
private static class MoveInfo { private static class MoveInfo {
@@ -168,17 +178,22 @@ public class StorageNotification implements CoreStartable {
@Override @Override
public void start() { public void start() {
mNotificationManager = mContext.getSystemService(NotificationManager.class);
mStorageManager = mContext.getSystemService(StorageManager.class);
mStorageManager.registerListener(mListener); mStorageManager.registerListener(mListener);
mContext.registerReceiver(mSnoozeReceiver, new IntentFilter(ACTION_SNOOZE_VOLUME), mBroadcastDispatcher.registerReceiver(
android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS, null, mSnoozeReceiver,
Context.RECEIVER_EXPORTED_UNAUDITED); new IntentFilter(ACTION_SNOOZE_VOLUME),
mContext.registerReceiver(mFinishReceiver, new IntentFilter(ACTION_FINISH_WIZARD), null,
android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS, null, null,
Context.RECEIVER_EXPORTED_UNAUDITED); Context.RECEIVER_EXPORTED_UNAUDITED,
android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
mBroadcastDispatcher.registerReceiver(
mFinishReceiver,
new IntentFilter(ACTION_FINISH_WIZARD),
null,
null,
Context.RECEIVER_EXPORTED_UNAUDITED,
android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS);
// Kick current state into place // Kick current state into place
final List<DiskInfo> disks = mStorageManager.getDisks(); final List<DiskInfo> disks = mStorageManager.getDisks();