翰林优商.apk(点击下载) / RetryJobSchedulerService.java


package com.ss.android.socialbase.appdownloader;

import android.app.job.JobInfo;
import android.app.job.JobParameters;
import android.app.job.JobScheduler;
import android.app.job.JobService;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import com.ss.android.socialbase.downloader.c.a;
import com.ss.android.socialbase.downloader.downloader.Downloader;
import com.ss.android.socialbase.downloader.downloader.c;
import com.ss.android.socialbase.downloader.impls.r;
import com.ss.android.socialbase.downloader.model.DownloadInfo;

public class RetryJobSchedulerService extends JobService {
    public boolean onStopJob(JobParameters jobParameters) {
        return false;
    }

    public void onCreate() {
        super.onCreate();
        c.a(this);
    }

    public boolean onStartJob(JobParameters jobParameters) {
        if (jobParameters == null) {
            return false;
        }
        int jobId = jobParameters.getJobId();
        a.c("RetrySchedulerService", "onStartJob, id = " + jobId);
        r.a().a(jobId);
        return false;
    }

    public int onStartCommand(Intent intent, int i, int i2) {
        int onStartCommand = super.onStartCommand(intent, i, i2);
        if (c.j()) {
            return 2;
        }
        return onStartCommand;
    }

    static void a(DownloadInfo downloadInfo, long j, boolean z, int i) {
        Context N;
        long j2;
        com.ss.android.socialbase.downloader.downloader.r reserveWifiStatusListener;
        com.ss.android.socialbase.downloader.downloader.r reserveWifiStatusListener2;
        if (downloadInfo != null && j > 0 && (N = c.N()) != null) {
            int i2 = 2;
            if (downloadInfo.isPauseReserveOnWifi() && (reserveWifiStatusListener2 = Downloader.getInstance(c.N()).getReserveWifiStatusListener()) != null) {
                reserveWifiStatusListener2.a(downloadInfo, 2, 3);
            }
            try {
                JobScheduler jobScheduler = (JobScheduler) N.getSystemService("jobscheduler");
                if (jobScheduler != null) {
                    try {
                        jobScheduler.cancel(downloadInfo.getId());
                    } catch (Throwable th) {
                        th.printStackTrace();
                    }
                    if (i == 0 || (z && i != 2)) {
                        j = 1000;
                        j2 = 0;
                    } else {
                        j2 = 60000 + j;
                    }
                    JobInfo.Builder minimumLatency = new JobInfo.Builder(downloadInfo.getId(), new ComponentName(N.getPackageName(), RetryJobSchedulerService.class.getName())).setMinimumLatency(j);
                    if (!z) {
                        i2 = 1;
                    }
                    JobInfo.Builder requiresDeviceIdle = minimumLatency.setRequiredNetworkType(i2).setRequiresCharging(false).setRequiresDeviceIdle(false);
                    if (j2 > 0) {
                        requiresDeviceIdle.setOverrideDeadline(j2);
                    }
                    int schedule = jobScheduler.schedule(requiresDeviceIdle.build());
                    if (schedule > 0 && downloadInfo.isPauseReserveOnWifi() && (reserveWifiStatusListener = Downloader.getInstance(c.N()).getReserveWifiStatusListener()) != null) {
                        reserveWifiStatusListener.a(downloadInfo, 3, 3);
                    }
                    if (schedule <= 0) {
                        a.d("RetrySchedulerService", "schedule err errCode = " + schedule);
                    }
                }
            } catch (Throwable th2) {
                th2.printStackTrace();
            }
        }
    }
}