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

Commit a2d8e54d authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "QuickBoot: remove alarms for killed apps"

parents f41c28a1 d22260da
Loading
Loading
Loading
Loading
+28 −1
Original line number Diff line number Diff line
@@ -117,6 +117,7 @@ class AlarmManagerService extends IAlarmManager.Stub {
    private final AlarmHandler mHandler = new AlarmHandler();
    private ClockReceiver mClockReceiver;
    private UninstallReceiver mUninstallReceiver;
    private QuickBootReceiver mQuickBootReceiver;
    private final ResultReceiver mResultReceiver = new ResultReceiver();
    private final PendingIntent mTimeTickSender;
    private final PendingIntent mDateChangeSender;
@@ -521,6 +522,7 @@ class AlarmManagerService extends IAlarmManager.Stub {
        mClockReceiver.scheduleTimeTickEvent();
        mClockReceiver.scheduleDateChangedEvent();
        mUninstallReceiver = new UninstallReceiver();
        mQuickBootReceiver = new QuickBootReceiver();
        
        if (mDescriptor != -1) {
            mWaitThread.start();
@@ -1432,6 +1434,31 @@ class AlarmManagerService extends IAlarmManager.Stub {
        }
    }

    private class QuickBootReceiver extends BroadcastReceiver {

        public QuickBootReceiver() {
            IntentFilter filter = new IntentFilter();
            filter.addAction("intent.quickboot.appkilled");
            mContext.registerReceiver(this, filter,
                    "android.permission.DEVICE_POWER", null);
        }

        @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                String pkgList[] = null;
                if ("intent.quickboot.appkilled".equals(action)) {
                    pkgList = intent.getStringArrayExtra(Intent.EXTRA_PACKAGES);
                    if (pkgList != null && (pkgList.length > 0)) {
                        for (String pkg : pkgList) {
                            removeLocked(pkg);
                            mBroadcastStats.remove(pkg);
                        }
                    }
                }
            }
    }

    class ClockReceiver extends BroadcastReceiver {
        public ClockReceiver() {
            IntentFilter filter = new IntentFilter();