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

Commit b040559a authored by Julia Reynolds's avatar Julia Reynolds
Browse files

Move package change handling to handler.

Test: soaked for a few days
Bug: 29638956
Change-Id: I928a67352f6f538953c8ce99357288be2d3f051f
parent a5287dc1
Loading
Loading
Loading
Loading
+31 −8
Original line number Original line Diff line number Diff line
@@ -198,6 +198,7 @@ import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.notification.SystemNotificationChannels;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.SomeArgs;
import com.android.internal.statusbar.NotificationVisibility;
import com.android.internal.statusbar.NotificationVisibility;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.DumpUtils;
@@ -270,6 +271,7 @@ public class NotificationManagerService extends SystemService {
    static final int MESSAGE_LISTENER_HINTS_CHANGED = 5;
    static final int MESSAGE_LISTENER_HINTS_CHANGED = 5;
    static final int MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED = 6;
    static final int MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED = 6;
    static final int MESSAGE_FINISH_TOKEN_TIMEOUT = 7;
    static final int MESSAGE_FINISH_TOKEN_TIMEOUT = 7;
    static final int MESSAGE_ON_PACKAGE_CHANGED = 8;


    // ranking thread messages
    // ranking thread messages
    private static final int MESSAGE_RECONSIDER_RANKING = 1000;
    private static final int MESSAGE_RECONSIDER_RANKING = 1000;
@@ -1131,12 +1133,7 @@ public class NotificationManagerService extends SystemService {
                    }
                    }
                }
                }


                mListeners.onPackagesChanged(removingPackage, pkgList, uidList);
                mHandler.scheduleOnPackageChanged(removingPackage, changeUserId, pkgList, uidList);
                mAssistants.onPackagesChanged(removingPackage, pkgList, uidList);
                mConditionProviders.onPackagesChanged(removingPackage, pkgList, uidList);
                mPreferencesHelper.onPackagesChanged(
                        removingPackage, changeUserId, pkgList, uidList);
                handleSavePolicyFile();
            }
            }
        }
        }
    };
    };
@@ -5705,6 +5702,16 @@ public class NotificationManagerService extends SystemService {
        }
        }
    }
    }


    private void handleOnPackageChanged(boolean removingPackage, int changeUserId,
            String[] pkgList, int[] uidList) {
        mListeners.onPackagesChanged(removingPackage, pkgList, uidList);
        mAssistants.onPackagesChanged(removingPackage, pkgList, uidList);
        mConditionProviders.onPackagesChanged(removingPackage, pkgList, uidList);
        mPreferencesHelper.onPackagesChanged(
                removingPackage, changeUserId, pkgList, uidList);
        handleSavePolicyFile();
    }

    protected class WorkerHandler extends Handler
    protected class WorkerHandler extends Handler
    {
    {
        public WorkerHandler(Looper looper) {
        public WorkerHandler(Looper looper) {
@@ -5731,6 +5738,12 @@ public class NotificationManagerService extends SystemService {
                case MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED:
                case MESSAGE_LISTENER_NOTIFICATION_FILTER_CHANGED:
                    handleListenerInterruptionFilterChanged(msg.arg1);
                    handleListenerInterruptionFilterChanged(msg.arg1);
                    break;
                    break;
                case MESSAGE_ON_PACKAGE_CHANGED:
                    SomeArgs args = (SomeArgs) msg.obj;
                    handleOnPackageChanged((boolean) args.arg1, args.argi1, (String[]) args.arg2,
                            (int[]) args.arg3);
                    args.recycle();
                    break;
            }
            }
        }
        }


@@ -5746,6 +5759,16 @@ public class NotificationManagerService extends SystemService {
                sendMessage(Message.obtain(this, cancelRunnable));
                sendMessage(Message.obtain(this, cancelRunnable));
            }
            }
        }
        }

        protected void scheduleOnPackageChanged(boolean removingPackage, int changeUserId,
                String[] pkgList, int[] uidList) {
            SomeArgs args = SomeArgs.obtain();
            args.arg1 = removingPackage;
            args.argi1 = changeUserId;
            args.arg2 = pkgList;
            args.arg3 = uidList;
            sendMessage(Message.obtain(this, MESSAGE_ON_PACKAGE_CHANGED, args));
        }
    }
    }


    private final class RankingHandlerWorker extends Handler implements RankingHandler
    private final class RankingHandlerWorker extends Handler implements RankingHandler