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

Commit c130cf09 authored by Hari's avatar Hari
Browse files

Handle doze changes in receiver

parent c0127328
Loading
Loading
Loading
Loading
+19 −3
Original line number Diff line number Diff line
@@ -8,7 +8,10 @@ import android.os.Build;
import android.os.PowerManager;
import android.support.annotation.RequiresApi;

import com.fsck.k9.controller.MessagingController;
import com.fsck.k9.service.BootReceiver;
import com.fsck.k9.service.MailService;
import com.fsck.k9.service.PollService;
import timber.log.Timber;


@@ -24,10 +27,23 @@ class DeviceIdleReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        boolean deviceInIdleMode = powerManager.isDeviceIdleMode();
        Timber.v("Device idle mode changed. Idle: %b", deviceInIdleMode);

        if (!deviceInIdleMode) {
        if (deviceInIdleMode) {
            Timber.v("Device entering doze mode");
            BootReceiver.purgeSchedule(context);
            PollService.stopService(context);
            MailService.actionStopPushers(context, null);
        } else {
            boolean deviceInteractive = powerManager.isInteractive();
            if (deviceInteractive) {
                Timber.v("Device exiting doze mode");
                MailService.actionReset(context, null);
            } else {
                Timber.v("Device entering doze maintenance window");
                MessagingController controller = MessagingController.getInstance(context);
                controller.setCheckMailListener(null);
                controller.checkMail(context, null, true, true, null);
            }
        }
    }
}